본문 바로가기

Spring

@JsonProperty 사용이유? 사용법

728x90
반응형
SMALL

 

 

 

 

어떤 회사의 과제시험을 보는중이였다.

 

거기서 요구하는 조건에 맞게 API를 개발해야하는 상태..

 

{
"한국어":"korea",
"영어":"englisth",
"언어":"lang"
}

이 JSON을 가지고 요청을 해야함.

 

근데 왠걸 키 값이 한글로 되어있음......

 

자바에는 변수명을 한글로도 표기가 가능해서, 그렇게 개발해도 상관은 없다.

 

private String 한국어;
private String 영어;
private String 언어;

 

뭐 이런식으로 해도 정상작동은 한다.

 

 

근데 안이쁘잖아....

 

 

우선 라이브러리 등록하자.

gradle

implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.14.2'

 

maven

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.14.2</version>
</dependency>

이럴때는 @JsonProperty을 써보자.

@JsonProperty("한국어")
private String korean;
@JsonProperty("영어")
private String english;
@JsonProperty("언어")
private String lang;

 

이렇게 하면 변수명도 영어로 이쁘게 살릴수도있고, JSON으로 된 바디값을 받아도 정상적으로 매핑이 가능하다.

 

 

 

 

+ 추가 보너스

 

 

@JsonNaming 이란게 있는데 이거는 공통으로 적용할때 많이 사용한다.

 

@Data
@JsonNaming(value = PropertyNamingStrategy.SnakeCaseStrategy.class)
public class lang {

  //생략

}

 

뭐 이런식으로 쓰면됌..

 

거의 보통 카멜케이스 관련 문제로 종종 쓰곤함.

728x90
반응형
LIST