텍스트 형태의 JSON을 object로 변경해 주거나 object를 텍스트 형태의 JSON으로 변경해 주는 것을 의미한다.
예를 들면 컨트롤러에 요청이 오면, Content-Type이 JSON타입인 것을 object로 변경을 해주고, 처리 후 응답으로 클라이언트에 자동으로 Object를 요청 형태에 해당되는 json으로 변경해준다.
// https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind
implementation 'com.fasterxml.jackson.core:jackson-databind:2.11.2'
DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES를 false로 설정하면 Exception이 발생하지 않는다.
// naverApiResponseJson (JSON 형태) -> itemDtoList (자바 객체 형태)
// - naverApiResponseJson 에서 우리가 사용할 데이터만 추출 -> List<ItemDto> 객체로 변환
ObjectMapper objectMapper = new ObjectMapper()
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
JsonNode itemsNode = objectMapper.readTree(naverApiResponseJson).get("items");
List<ItemDto> itemDtoList = objectMapper
.readerFor(new TypeReference<List<ItemDto>>() {})
.readValue(itemsNode);