컴퓨터 프로그래밍/Spring

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

한33 2024. 8. 12. 18:31

템플릿 엔진이 적용된 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 메서드가 필요