일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- nestjs typeorm
- 코딩테스트
- spring boot
- @Component
- 알고리즘
- nestjs auth
- 카카오
- 시스템호출
- Nodejs
- git
- 카카오 알고리즘
- 파이썬
- 코테
- Spring
- thymeleaf
- 프로그래머스
- TypeORM
- 해시
- OpenCV
- 스프링
- AWS
- @Autowired
- nestJS
- 구조체배열
- python
- 컴포넌트스캔
- C++
- 카카오 코테
- 가상면접사례로배우는대규모시스템설계기초
- C언어
- Today
- Total
공부 기록장 💻
[Spring] @JsonProperty를 이용해 Json 데이터의 파라미터 key 값을 변경하여 전달하기 본문
[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 로 잘 전달된 것을 확인할 수 있다.
'# Tech Studies > Java Spring • Boot' 카테고리의 다른 글
[Spring/JPA] JPA (Java Persistent API) 란? (0) | 2023.04.24 |
---|---|
[Spring] 빈 스코프란? (Singleton, Prototype Scope) (1) | 2023.03.22 |
[Spring/Thymeleaf] 타임리프 템플릿 View에서 서버로부터 전달된 model 객체의 필드 값이 null인 경우 해결하기 (Safe Navigation Operator, ${객체?.필드}) (0) | 2023.02.16 |
Enum 열거형 타입으로 성별 관리하기 @Enumerated 활용 (0) | 2023.02.15 |
[Spring] View에서 Thymeleaf 문법을 이용하여 url 링크로 이미지 업로드하기 (img th:src) (0) | 2023.02.14 |