SpringBoot JSON 데이터 객체로 받아오기

Ada·2022년 10월 6일
0

항해TOL

목록 보기
24/63

Object Mapper란 ?

텍스트 형태의 JSON을 object로 변경해 주거나 object를 텍스트 형태의 JSON으로 변경해 주는 것을 의미한다.

예를 들면 컨트롤러에 요청이 오면, Content-Type이 JSON타입인 것을 object로 변경을 해주고, 처리 후 응답으로 클라이언트에 자동으로 Object를 요청 형태에 해당되는 json으로 변경해준다.

Gradle 의존성 주입

// 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);
profile
백엔드 프로그래머

0개의 댓글