미소를뿌리는감자의 코딩

[Spring] Jackson ( Jason to Object, Object to Jason ) 본문

강의수강/[Spring]

[Spring] Jackson ( Jason to Object, Object to Jason )

미뿌감 2024. 2. 29. 21:53
728x90

Jackson을 이용해서, object 에서 Json으로, Json에서 Object로 만드는 방법에 대해 알아볼 것이다.

Jackson은 libraries를 보게 되면 이미 내장되어 있음을 확인할 수 있다.

jackson 을 확인해 볼 수 있다.

 

Object to Json 에 대해서 알아본 후 Json to Object에 대해서 알아볼 것이다.

 

1. Object to Json

우선 test 폴더 에다가 만들어 준다.

 

필수 조건

- get Method 필요.; 사용하는 object에 @getter가 선언되어 있어야 한다.

@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); // star 객체를 읽은 다음, String type으로 바꾸어 줌.

    System.out.println("json = " + json);
}

우선 사용하고자 하는 Object를 선언해준다.

 

이후 ObjectMapper 도 새로 만들어 준다.

 

이후 Json으로 넘기기 위해 String으로 변환시켜 주어야 하므로, objectMapper.writeValueAsString(star) 로 적어준 후, 이를 String에 저장해 준다.

 

이후 변환한 json string을 sout 해준다.!

 

2. Json to Object

필수 조건

- 기본 생성자

- Get or Set Method

 

@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);// 두 번째 parameter 어떤 class로 mapping 할 건지 적어준다.
    System.out.println("star.getName() = " + star.getName());
    System.out.println("star. = " + star.getAge());
}

 

먼저 예시 json String을 만들어 준다.

위와 동일하게 ObjectMapper 또한 하나 만들어 준다.

 

위에와 달리, .readValue(json, Star.class) 로 값을 읽어준다. json을 star class 로 mapping할 것임을 의미한다.

이후 mapping 한 것을 star이라는 변수에 넣어준다.

 

이후 star의 variable들을 print 해보며 잘 들어갔는지도 확인해 준다.

728x90