-
[Spring] HttpServletResponse 객체로 JSON 데이터 반환하기 / @ResponseBody 로 JSON 데이터 반환하기JAVA/Spring(Springboot) 2021. 7. 29. 13:42728x90
@WebServlet(name = "responseJsonServlet", urlPatterns = "/response-json") public class ResponseJsonServlet extends HttpServlet { private ObjectMapper objectMapper = new ObjectMapper(); @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // content -type response.setContentType("application/json"); response.setCharacterEncoding("utf-8"); HelloData helloData = new HelloData(); helloData.setUsername("won"); helloData.setAge(20); // JSON 형태로 변환하기 // {"username" : "won", "age" : 20} String result = objectMapper.writeValueAsString(helloData); response.getWriter().write(result); } }
Spring에서 제공하는 Controller를 통해서 코드를 작성해보자.
@RestController public class RequestBodyJsonController { // Jackson 라이브러리인 ObjectMapper 를 생성한다 private ObjectMapper objectMapper = new ObjectMapper(); @PostMapping("/response-body-json-v1") public HelloData responseBodyJsonV1(HttpServletRequest request, HttpServletResponse response) throws IOException { ServletInputStream inputStream = request.getInputStream(); String messageBody = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8); HelloData helloData = objectMapper.readValue(messageBody, HelloData.class); return helloData; } @PostMapping("/response-body-json-v2") public HelloData responseBodyJsonV2(@RequestBody HelloData helloData) throws IOException { // helloData 를 바로 사용할 수 있다. return helloData; } }
728x90728x90'JAVA > Spring(Springboot)' 카테고리의 다른 글
git 에 있는 프로젝트 Intellij 에 clone 하기 (0) 2021.08.04 [Spring] @RestController / @RequestBody (0) 2021.08.01 [Spring] HttpServletResponse 객체로 HTML 코드 반환하기 (0) 2021.07.29 [Spring] HttpServlet JSON 데이터 객체형태로 받기 / @RequestBody 로 JSON 데이터 받기 (0) 2021.07.29