ObjectMapper 활용, JSON데이터 ➜ DTO 맵핑하기

주야·2024년 3월 8일

행정안전부 주소 검색 api JSON 리턴이 아래와 같은 형태입니다.

results > common & juso

들어온 데이터의 계층 구조에 맞게 DTO Class를 만들어주시면 됩니다.

AddressDto.java

@Getter
public class AddressDto {
    private ResultsDto results;

    @Getter
    public static class ResultsDto {
        private AddressCommonDto common;
        private List<Juso> juso;

        @Getter
        public static class AddressCommonDto {
            private String errorMessage;
            private String countPerPage;
            private String totalCount;
            private String errorCode;
            private String currentPage;
        }

        @Getter
        public static class Juso {
            private String detBdNmList;
            private String engAddr;
            private String rn;
            private String emdNm;
            private String zipNo;
            private String roadAddrPart2;
            private String emdNo;
            private String sggNm;
            private String jibunAddr;
            private String siNm;
            private String roadAddrPart1;
            private String bdNm;
            private String admCd;
            private String udrtYn;
            private String lnbrMnnm;
            private String roadAddr;
            private String lnbrSlno;
            private String buldMnnm;
            private String bdKdcd;
            private String liNm;
            private String rnMgtSn;
            private String mtYn;
            private String bdMgtSn;
            private String buldSlno;
        }

    }

}

ObjectMapper 선언해주시고, 받아온 JsonData를 아래와 같이 써주시면 됩니다!

ObjectMapper mapper = new ObjectMapper();
AddressDto addressDto = mapper.readValue(response.toString() , AddressDto.class);
//response.toString()는 외부 api 리턴값임

반드시 JSON key값과 DTO Field명을 일치 시켜주셔야해용!!

profile
개발자

1개의 댓글

comment-user-thumbnail
2024년 3월 11일

분명히 잘됐는데,,, 왜 갑자기.. mapping이 안되는지.. 정말 알다가도 모르겠구낭...내일 다시해보장

답글 달기