API 사용 중, 전달 받아 DTO에 세팅하는 과정에서 어려움에 봉착했다.
DTO의 필드는 카멜 케이스로 되어있는데, 전달 받은 값은 카멜 케이스였기 때문이다.
해서 이 문제를 해결하고자 아래와 같이 방법을 찾아봤다.
1. 카멜 케이스 (Caeml Case) : helloWorld
2. 스네이크 케이스 (Snake Case) : hello_world
3. 케밥 케이스 (Kebab Case) : HelloWorld
4. Upper Case : HELLO_WORLD
@Jsonnaming & @JsonProperty 사용
Maven
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.13.2</version> <type>bundle</type> </dependency>
Gradle
implementation 'com.fasterxml.jackson.core:jackson-core:2.13.2'
DTO의 각 필드 위에 아래와 같이 추가
public class Student{ @JsonProperty("student_no") private intstudentNo; @JsonProperty("student_name") private String studentName; }
DTO 클래스 상단에 아래와 같이 추가
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) public class Student{ private int sudentNo; private String studentName; }