[Spring] Jackson

thingzoo·2023년 6월 24일
0

Spring

목록 보기
14/54
post-thumbnail
post-custom-banner

Jackson 라이브러리

JSON 데이터 구조를 처리해주는 Spring 라이브러리

  • 하는 일
    • ObjectJSON 타입의 String으로 변환
    • JSON 타입의 StringObject로 변환
  • Spring은 3.0버전 이후로 Jacskon과 관련된 API를 제공함으로써, 우리가 직접 소스 코드를 작성하여 JSON 데이터를 처리하지 않아도 자동으로 처리해줌
    • 따라서 SpringBoot의 starter-web에서는 default로 Jackson 관련 라이브러리들을 제공
    • 직접 JSON 데이터를 처리해야할 때는 Jackson 라이브러리의 ObjectMapper를 사용할 수 있음

Serialize(직렬화): Object To JSON

@Test
@DisplayName("Object To JSON : get Method 필요")
void test1() throws JsonProcessingException {
    Star star = new Star("Robbie", 95);

    ObjectMapper objectMapper = new ObjectMapper(); // Jackson 라이브러리의 ObjectMapper
    String json = objectMapper.writeValueAsString(star);

    System.out.println("json = " + json);
}
  • String json = objectMapper.writeValueAsString(object)
    • 파라미터에 JSON 으로 변환시킬 Object의 객체를 주면
    • 해당 JSON 형태의 String타입을 반환
  • 이때 해당 Object에 get 메소드가 필요!!!

Deserialize(역직렬화): JSON To Object

@Test
@DisplayName("JSON To Object : 기본 생성자 & (get OR set) Method 필요")
void test2() throws JsonProcessingException {
    String json = "{\"name\":\"Robbie\",\"age\":95}"; // JSON 타입의 String

    ObjectMapper objectMapper = new ObjectMapper(); // Jackson 라이브러리의 ObjectMapper

    Star star = objectMapper.readValue(json, Star.class);
    System.out.println("star.getName() = " + star.getName());
}
  • Object object = objectMapper.readValue(json, Object.class)
    • 첫 번째 파라미터는 JSON 형태의 String 타입
    • 두 번째 파라미터에는 변환할 Object의 class 타입
    • 해당 Object의 class 타입 반환
  • 이때 해당 Object에 기본 생성자와 get 혹은 set 메소드가 필요!!!
profile
공부한 내용은 바로바로 기록하자!
post-custom-banner

0개의 댓글