관리 메뉴

공부 기록장 💻

[Spring] @JsonProperty를 이용해 Json 데이터의 파라미터 key 값을 변경하여 전달하기 본문

# Tech Studies/Java Spring • Boot

[Spring] @JsonProperty를 이용해 Json 데이터의 파라미터 key 값을 변경하여 전달하기

dream_for 2023. 2. 21. 15:35


프로젝트를 진행하는 도중, 인터페이스 문서에서 Json 데이터로 Response Body를 보낼 때, json의 key 값에 언더바 문자 '_' 가 들어가는 것을 확인하였다.
오래전에 프론트와 상의하여 API 문서를 만들었을 때에는 DB의 각 칼럼에 데이터들을 저장할 것 까지 고려하여 json 형식의 데이터 key 값으로 underline이 포함되는 것을 크게 개의치 않았다.
하지만 개발을 하면서 바로 DTO를 통해 json 데이터를 전달해야 하는 경우 underline이 포함되는 key에 대해 어떻게 처리를 해야 하나 고민을 하게 되었다.

그러던 중 Jackson annotation에서 제공하는 @JsonProperty 를 이용해 값을 프론트에게 전달할 때, key의 이름을 변경할 수 있다는 것을 알게 되었다.


기존의 WeatherCodeDto는 아래와 같다.
json의 각 value 값이 될 DTO의 필드명에 underbar가 포함되어 있다.


이런 경우 비즈니스 로직을 작성할 때 코드가 보기 좋지 않고, coding convention에도 적절하지 않다는 것을 확인할 수 있다.



따라서 이때, DTO의 필드 위에 @JsonProperty(value = "") 를 이용해보자.
json 형식으로 데이터 값을 전달할 때, key 이름이 value에 적은 값으로 변경될 수 있도록 구현을 하였다.


이렇게 필드 명을 서버 측에서 원하는 code 라는 변수명으로 바꾸고 나면 아래와 같이 날씨 코드 값에 대한 로직을 작성할 대도 깔끔하게 코드들을 작성할 수 있게 된다.



결과값을 확인해 보았을 때, 전달하고자하는 code가 json 형식에서는 weather_code 로 잘 전달된 것을 확인할 수 있다.

728x90
반응형
Comments