2017-05-04 104 views
0

我有一個複雜的類在我的REST API:我可以使用Jackson @JsonView序列化一個屬性嗎?

class Complicated { 
    String foo 
    Integer bar 
    Instant baz 
    ... 
    // lots more 
} 

我也有一個包含Complicated集合另一個類:

class HasComplications { 
    String description 

    List<Complicated> complications 
} 

當我序列我HasComplications(與Spring MVC),我只希望每個Complicated的一個片段:

{ 
    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 
} 

然而,當我序列Complicated傳遞地在complications財產,傑克遜序列化的所有屬性。有沒有辦法讓我聲明地告訴它「序列化此屬性時使用此視圖」?

class HasComplications { 
    String description 

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

回答

1

目前還沒有此功能。

你可以做的一件事就是在屬性上使用@JsonIgnoreProperties。 但是,我認爲這隻適用於POJO值,而不適用於List s或Map s的內容,因此在這裏沒有幫助。 提出一個問題,使這項工作的結構類型可能是有道理的。

+0

看起來有一個類似的功能請求,而我已經評論過它。 – chrylis

相關問題