본문 바로가기

Server Oriented/SpringBoot

@JsonSetter : Object 에서 JSON 생성시 key 이름을 개발자가 지정

원문 : https://gajy.tistory.com/29

 

SpringBoot 에서 기본 제공되는 JackSON 을 사용하면,

기본이 lowerCamel 방식이므로..

 

.java 쪽에서 String JobDate 와 같이 선언하여도

json 변환후에 "jobDate":"..." 와 같이 됨.

 

ObjectMaper() 나 JsonMapper 에서

MapperFeature.USE_WRAPPER_NAME_AS_PROPERTY_NAME 나

MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES

등을 true 로 해도 결과는 동일..

 

한참 찾아 보는데.. 상기 원문에서와 같이

@JsonSetter("JobDate")

String JobDate; // jobDate 라 해도 된다

로 했더니 짜자안..

"JobDate":"..." 와 같이 변환됨..

 

@JsonSetter("job_date")

@JsonSetter("job-date")

등도 가능.

 

전혀 엉뚱한 단어를 기술해도 됨.

@JsonSetter("StartDate")

String jobDate;

 

--------------------------------------------

https://rudaks.tistory.com/entry/Jackson-Annotation

Jackson 으로 json 다루는 내용.

@JsonSetter 는 object 에서 json 문자열 변환시,

@JsonGetter 는 json 문자열을 object 로 변환시..

둘을 한 번에 적용하려면, @JsonProperty 사용.

FrontEnd 에서 넘어오는 json object 를 

@Controller 에서 object 에 담을 때 @JsonProperty 로 기술.

json Object 가 아니라, json String 으로 넘어오면,

@JsonCreator 를 활용.. ~.~

 

 

.Fine.