템플릿 엔진이 적용된 SpringBoot 에서 Controller 에서 문자열을 반환하면 templates 폴더에서 해당 문자열의 html 파일을 찾아서 반환해줌
따라서 html 파일이 아닌 JSON 데이터를 브라우저에 반환하려면 해당 메서드에 @ResponseBody 애너테이션을 추가해줘야함
1. 반환값 : String
- Java는 JSON 타입을 지원하지 않기 때문에 JSON 형태의 String 타입으로 변환해서 사용해야 함
2. 반환값 : String 외 자바 클래스
- "자바 객체 → JSON 으로 변환"
- Spring 에서 자동으로 Java 의 객체를 JSON 으로 변환해줌
@RestController 을 사용하면 @ResponseBody 를 전부 생략하고 해당 클래스 전체를 데이터를 전달하는 클래스로 만들 수 있다. ( = @Controller + @ResponseBody )
Jackson 라이브러리
Jackson 은 JSON 데이터 구조를 처리해주는 라이브러리
Object → JSON 타입의 String
JSON 타입의 String → Object
Object → JSON
- objectMapper 의 writeValueAsString 메서드를 사용하여 변환
- 파라미터에 JSON 으로 변환시킬 Object 객체 ( star ) 주면 됨
- Object를 JSON 타입의 String으로 변환하기 위해서는 해당 Object에 get Method가 필요
JSON → Object
- objectMapper 의 readValue 메서드를 사용하여 변환
- 첫 번째 파라미터는 JSON 타입의 String, 두 번째 파라미터에는 변환할 Object의 class 타입을 주면 됨
- JSON 타입의 String을 Object로 변환하기 위해서는 해당 Object에 기본 생성자와 get 혹은 set 메서드가 필요
'컴퓨터 프로그래밍 > Spring' 카테고리의 다른 글
[Spring] Ioc (제어의 역전) 와 DI (의존성 주입) (0) | 2024.08.16 |
---|---|
[Spring] CRUD (0) | 2024.08.13 |
[Spring] PathVariable, RequestParam, ModelAttribute, RequestBody (0) | 2024.08.13 |
[Spring] Controller, 정적 페이지와 동적 페이지 (0) | 2024.08.12 |
[Spring] Gradle, Lombok (0) | 2024.08.11 |