본문 바로가기
컴퓨터 프로그래밍/Spring

[Spring] 데이터를 Client 에 반환, Jackson 라이브러리

by 한33 2024. 8. 12.

템플릿 엔진이 적용된 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 타입의 StringObject로 변환하기 위해서는 해당 Object에 기본 생성자와 get 혹은 set 메서드가 필요