2016-12-19 5 views
0

잭슨은 필드 레벨에서 @JsonIgnoreProperties 주석을 가지고 있습니다.이 주석은 훌륭하지만 가끔은 커질 수 있습니다.@JsonIgnoreOtherProperties와 같은 것이 있습니까?

@JsonIgnoreProperties({ "name", "phone", ... "20th item"}) 
private User user; 

내가 좋아하는 뭔가를 찾고 있어요 :

@JsonIgnoreOtherProperties("email") 
private User user; 

그래서이 모든 필드하지만 이메일을 무시합니다.

@JsonIgnoreOtherProperties와 같은 것이 있습니까?

1)) @JsonView (http://wiki.fasterxml.com/JacksonJsonViews 사용 :

답변

0

나는 그 존재하지만 (기존 솔루션보다 다른) 당신이 원하는 것을 달성하는 방법은 여러 가지가 있다고 생각하지 않습니다. 예를 들어 What is the JSON View class in Jackson and how does it work?을 참조하십시오.

2) 최소한 UserMinimal 필드의 최소 집합을 포함하는 다른 User보기를 만듭니다. 다른 인터페이스 인 User에서 공통 인터페이스를 상속하여 실제로 동일한 항목을 나타내는 것으로 볼 수 있습니다.

3) 개체 매퍼를 사용자 지정하고 필터를 사용합니다. 예를 들어 How do I exclude fields with Jackson not using annotations?을 참조하십시오.

개인적으로는 간단한 사용 사례가있는 경우 첫 번째 솔루션을 선호하고 더 복잡한 사례가있는 경우 두 번째 솔루션을 선호합니다. 필자는 객체 매퍼를 커스터마이징하는 것이 내 경험상 오류가 발생하기 쉬운 경로로 안내한다고 생각하기 때문에 세 번째 옵션을 싫어합니다.

귀하의 특수 효과 아이디어는 흥미로운 것으로 들립니다. 나는 그것을 기능 요구 (나는 그것이 https://github.com/FasterXML/jackson-annotations/issues이 될 것이라고 생각한다)로 두는 것을 고려할 것이다.

관련 문제