스네이크 케이스를 카멜 케이스로 받기

Dodo Lee·2025년 1월 24일

서론


API 사용 중, 전달 받아 DTO에 세팅하는 과정에서 어려움에 봉착했다.

DTO의 필드는 카멜 케이스로 되어있는데, 전달 받은 값은 카멜 케이스였기 때문이다.

해서 이 문제를 해결하고자 아래와 같이 방법을 찾아봤다.


프로그래밍 표기법


1. 카멜 케이스 (Caeml Case) : helloWorld

  • 두 번째 이후의 단어 첫 글자를 대문자로 작성 (다른 글자는 소문자)

2. 스네이크 케이스 (Snake Case) : hello_world

  • 단어 안의 띄어쓰기를 언더바('_')로 작성

3. 케밥 케이스 (Kebab Case) : HelloWorld

  • 모든 단어의 첫 글자를 대문자로 작성 (다른 글자는 소문자)

4. Upper Case : HELLO_WORLD

  • 모든 글자를 대문자로 작성 (띄어쓰기는 언더바로 작성)

Snake Case --> Camel Case


@Jsonnaming & @JsonProperty 사용

1. Jackson 라이브러리 추가

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'

2. @JsonProperty

DTO의 각 필드 위에 아래와 같이 추가

public class Student{
	@JsonProperty("student_no")
	private intstudentNo;
	@JsonProperty("student_name")
	private String studentName;
}

3. @JsonNaming

DTO 클래스 상단에 아래와 같이 추가

@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
public class Student{
	private int sudentNo;
	private String studentName;
}

기타


  • 다른 형식의 케이스를 변환하고 싶은 경우, “SnakeCaseStrategy” 부분을 다른 케이스의 명으로 바꾸면 된다
profile
연습생

0개의 댓글