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
RESTful(4) - @RestController 사용하기 (단순문자열, 객체타입, List타입, Map타입)
@RestController → @Responsebody없이도 처리됨 (생략) @Controller와는 다르게 @RestController는 리턴값에 자동으로 @ResponseBody를 붙게되어 HTTP 응답데이터(body)에 자바 객체가 매핑되어 전달 된다고 한다..
kkangdda.tistory.com
참조
[Spring] @ResponseBody, @RequestBody와 Ajax, JSON
오늘은 여러 어노테이션 중 @ResponseBody와 @RequestBody에 대해서 알아보고자 합니다. 이 두개의 어노테이션은 가장 대표적인 @Service, @Controller와 같은 대장급(?) 어노테이션을 제외한다면 가장 많이
admm.tistory.com
https://kingchan223.tistory.com/57
spring mvc 06 - @RestController로 JSON응답하기
@ResponseBody혹은 @RestController를 사용하면 문자열을 그대로 반환할 수 있다. stringTest메소드를 보면 그냥 문자열을 반환해주는 것을 볼 수 있다. 또한 문자열을 출력해주는 @RestController를 클래스 위
kingchan223.tistory.com
'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 |