JAVA에는 JSON이라는 데이터 타입이 없어서 JSON데이터에 대한 처리를 하는 라이브러리를 추가해야 한다.
대표적으로 Jackson, Gson, SimpleJSON과 같은 라이브러리가 있는데, 나는 스프링부트에서 공식적으로 사용하는 Jackson 라이브러리를 사용했다.
1. @RequestBody
- @requestBody : 브라우저에서 전달된 JSON 형태의 데이터를 객체로 자동 전환(객체 내 동일 이름의 요소로 변환)
ajax에서 member 객체를 생성 후 JSON.stringify 메서드를 이용해 JSON 형태로 전달
* 객체를 전달하므로 전송방식은 'POST'
* JSON.stringify를 이용해 JSON데이터를 String으로 형변환 했다. 이때 전달할 데이터가 JSON형태로 이루어진 데이터임을 알려주기 위해 contentType 속성값을 "application/json"로 지정해야 한다.
RESTController에서 매개변수에 @RequestBody 애노테이션 이용해 전달받은 JSON 데이터를 객체에 받을 수 있음
* 요즘 나온 스프링 버전에서는 json을 String으로 파싱 & contentType 지정이 필요없다고 한다. (5.xx 버전 ~)
컨트롤러에서도 객체로 받을 때 @RequestBody 애노테이션을 쓸 필요가 없다.
2. @ResponseBody
@ResponseBody : REST 방식의 반환 데이터를 객체에서 JSON 형태로 변경. 즉 전달되는(return되는) 객체를 JSON으로 전환
* RESTController는 Controller + ResponseBody임. 따라서 @ResponseBody 애노테이션을 따로 붙여 줄 필요 없음.
* 단순 문자열은 문자열로, 객체/List<객체> 는 JSON으로 반환됨
* RESTController에서 반환 값 참조
https://kkangdda.tistory.com/39
참조
'3. Back-end > 3-1. Spring MVC - 국비' 카테고리의 다른 글
Spring MVC - [ 정적 자원 매핑 - <mvc:resources> ] (0) | 2022.07.26 |
---|---|
Spring MVC - [ UriComponentsBuilder ] (0) | 2022.07.20 |
MyBatis - [ 쿼리문 where like ] (0) | 2022.06.29 |
Spring MVC - [ mapper : sql구문에 부등호 기호 사용 ] (0) | 2022.06.28 |
Spring MVC - [ 페이징 처리 ] (0) | 2022.06.28 |