2017-05-04 3 views
0

내 REST API의 복잡한 클래스가 :Jackson @JsonView를 사용하여 속성을 serialize 할 수 있습니까?

class Complicated { 
    String foo 
    Integer bar 
    Instant baz 
    ... 
    // lots more 
} 
나는 또한 Complicated의 컬렉션을 포함하는 다른 클래스가

:

나는 직렬화
class HasComplications { 
    String description 

    List<Complicated> complications 
} 

HasComplications (스프링 MVC와), I 내가 직접를 직렬화있을 때

{ 
    description: "hello world", 
    complications: [ { 
     foo: "foo1", 
     bar: 42 
    ] } 
} 

: 각 Complicated의 조각을 원하는, 나는 직렬화하는 속성 세트 잭슨에게 @JsonView를 사용할 수 있습니다

그러나
class Complicated { 
    @JsonView(Views.Snippet) String foo 
    @JsonView(Views.Snippet) Integer bar 
    Instant baz 
    ... 
    // lots more 
} 

, 나는 전 이적 complications 속성, 잭슨의 모든 속성을 직렬화 Complicated를 직렬화 할 때. 선언적으로 "이 속성을 직렬화 할 때이 뷰를 사용"한다고 말하는 방법이 있습니까?

class HasComplications { 
    String description 

    @UseJsonView(Views.Snippet) 
    List<Complicated> complications 
} 

답변

1

현재 이러한 기능이 없습니다.

당신이 할 수있는 한 가지 일은 재산에 @JsonIgnoreProperties을 사용하는 것입니다. 그러나 나는 이것이 POJO 값에만 적용되고 List 또는 Map의 내용으로는 작동하지 않는다고 생각합니다. 그래서 여기서는 도움이되지 않습니다. 구조화 된 형식에 대해이 작업을 수행하는 데 문제가있는 것이 적합 할 수 있습니다.

+0

비슷한 기능 요청이있는 것처럼 보입니다. 나는 그것에 대해 의견을 말했습니다. – chrylis