본문 바로가기

Java

DTO로 변환할 때 PropertyNamingStrategy 사용 snake->camel 변환

728x90
반응형

카카오 다음 지도 API를 사용하던 도중 응답이 _ 언더바가 포함된 SNAKE타입으로 와서 camel형태로 변환하여 받으려고 한다. 

 

응답예시

{
"documents":[
        {
            "address_name":"서울 강남구 삼성동 172-66",
            "category_group_code":"SW8",
            "category_group_name":"지하철역",
            "category_name":"교통,수송 \u003e 지하철,전철 \u003e 수도권2호선",
            "distance":"",
            "id":"21160620",
            "phone":"02-6110-2191",
            "place_name":"삼성역 2호선",
            "place_url":"http://place.map.kakao.com/21160620",
            "road_address_name":"서울 강남구 테헤란로 지하 538",
            "x":"127.06302321147605",
            "y":"37.508822740225305"
        }
    ]
}

 

 

PropertyNamingStrategies 사용방법

@Getter
@Setter
@ToString
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public class MapVO {

    private String addressName;
    private String categoryGroupCode;
    private String categoryGroupName;
    private String categoryName;
    private String distance;
    private String id;
    private String phone;
    private String placeName;
    private String placeUrl;
    private String roadAddressName;
    private String x;
    private String y;

}

SnakeCaseStrategy를 받아서 변환해준다.

 

https://fasterxml.github.io/jackson-databind/javadoc/2.7/com/fasterxml/jackson/databind/PropertyNamingStrategy.html

 

PropertyNamingStrategy (jackson-databind 2.7.0 API)

Class that defines how names of JSON properties ("external names") are derived from names of POJO methods and fields ("internal names"), in cases where they are not auto-detected and no explicit annotations exist for naming. Methods are passed information

fasterxml.github.io

 

728x90
반응형