Jackson 라이브러리
@JsonAutoDetect
해당 어노테이션을 사용하면 필드의 직렬화 대상을 설정할 수 있습니다.
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)
public class Account
{
@JsonProperty("나의자산")
private String myAsset;
@JsonIgnore
private List<Category> categoryList;
}
현재 myAsset은 private입니다. 따라서 접근 할 수 없습니다. 하지만 fieldVisibility값을 Any로 준다면 private 속성까지 가시화 할 수 있습니다.
@JsonAutoDetect의 가시성 값은 ANY, NON_PRIVATE, PROTECTED_AND_PUBLIC과 같은 속성이 있으니 상황에 맞게 골라 쓰시면 됩니다.
@JsonProperty
해당 어노테이션은 json 직렬화시 해당 어노테이션에 설정한 값으로 json 직렬화 시켜줍니다. 위 코드의 경우 {"나의자산" : "77777777777"}과 같은 결과가 나오게 됩니다.
@JsonIgnore
위 코드를 직렬화 했을시 왜 categoryList는 직렬화에서 제외 되는지 궁금하실 수 있습니다. 그 이유는 @JsonIgnore 어노테이션의 기능때문입니다. 해당 어노테이션을 쓰면 해당 필드 값은 직렬화에서 제외시킨다는 뜻입니다. JPA를 수행하다보면 양방향 관계가 있을때 해당 어노테이션을 사용하지 않으면 StackOverFlow가 발생하게 되는 경우가 있습니다. 이럴때 @JsonIgnore를 사용하게 되면 문제를 해결 할 수 있으므로 알아두시는게 좋습니다.
Author And Source
이 문제에 관하여(Jackson 라이브러리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dktlsk6/Jackson-라이브러리저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)