-
[Spring] HttpServlet JSON 데이터 객체형태로 받기 / @RequestBody 로 JSON 데이터 받기JAVA/Spring(Springboot) 2021. 7. 29. 12:44728x90
Spring 에서 JSON 형태의 데이터를 바로 매핑해서 사용할 수 있는 방법은 두가지가 있다.
첫 번째는 Jackson 라이브러리인 'ObjectMapper' 를 사용하는 방법이고,
두 번째는 @RequestBody 를 사용해서 바로 객체를 받는 방법이다.예시로 함께 살펴보자
우선 넘길 JSON 데이터는 아래와 같다
{"username": "hello", "age": 20}
이 username 과 age 를 담을 클래스를 생성해보자
@Getter @Setter public class HelloData { private String username; private int age; }
그리고 JSON 파라미터를 받을 Controller 를 생성해보자
@Controller public class RequestBodyJsonController { // Jackson 라이브러리인 ObjectMapper 를 생성한다 private ObjectMapper objectMapper = new ObjectMapper(); @PostMapping("/request-body-json-v1") public void requestBodyJsonV1(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); } @PostMapping("/request-body-json-v2") public void requestBodyJsonV2(@RequestBody HelloData helloData) throws IOException { // helloData 를 바로 사용할 수 있다. } }
requestBodyJsonV1 은 request 객체에서 메세지바디를 읽어 ObjectMapper 에 매핑시키는 방법이다.
requestBodyJsonV2 는 @RequestBody 를 사용하여 바로 JSON 객체를 가져오는 방법이다.728x90728x90'JAVA > Spring(Springboot)' 카테고리의 다른 글
[Spring] HttpServletResponse 객체로 JSON 데이터 반환하기 / @ResponseBody 로 JSON 데이터 반환하기 (0) 2021.07.29 [Spring] HttpServletResponse 객체로 HTML 코드 반환하기 (0) 2021.07.29 [Spring] 여러 빈 중 빈을 선택해서(동적으로 빈을 선택하여) 서비스를 수행하고 싶을 때 (0) 2021.07.24 [Spring] 롬복 라이브러리 / 설치 및 사용법 (0) 2021.07.23