(Spring) @JsonProperty를 사용하여 Json 데이터를 전달하는 매개 변수 키 값을 변경합니다.

프로젝트 진행 중 인터페이스 문서에서 응답 본문을 Json 데이터로 보낼 때 json의 키 값에 밑줄 ‘_’이 입력되었는지 확인합니다.

예전에 API 문서를 작성하기 위해 프런트와 협상할 때 json 형식의 데이터 키 값으로 밑줄을 사용하는 것에 크게 신경을 쓰지 않고 DB의 각 열에 데이터를 저장하는 것을 고려했습니다.

.

그런데 개발 과정에서 DTO를 통해 json 데이터를 전달해야 할 때 밑줄이 포함된 키를 어떻게 처리할지 고민하게 되었습니다.

동시에 Jackson 애노테이션에서 제공하는 @JsonProperty를 사용하여 값을 프런트 엔드로 전달할 때 키 이름을 변경할 수 있음을 발견했습니다.


기존 WeatherCodeDto는 다음과 같습니다.

밑줄은 json의 모든 값인 DTO의 필드 이름에 포함됩니다.


이 경우 비즈니스 로직을 작성할 때 코드가 보기 흉하고 코딩 표준을 준수하지 않는 것을 볼 수 있습니다.


그래서 이번에는 DTO 분야에서 @JsonProperty(값 = “”) 사용하자

데이터 값을 json 형식으로 전송할 때 값이 더 작아질 수 있도록 키 이름을 구현합니다.


필드명을 서버측에서 원하는 코드라는 이름의 변수명으로 변경한 후 날씨 코드 값 로직을 작성할 때 아래 그림과 같이 깔끔하게 코드를 작성할 수 있습니다.


결과 값을 확인해보면 전달하려는 코드가 json 형식의 weather_code임을 알 수 있습니다.