2017-05-04 14 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のと)、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

現在、このような機能はありません。

あなたができることの1つは、プロパティに@JsonIgnorePropertiesを使用することです。 しかし、それはPOJO値に対してのみ機能し、内容はListまたはMapではないので、ここでは役に立たないと思います。 構造化された型に対してこの作業を行うための問題を提起することは意味があります。

+0

似たような機能リクエストがあったようですが、私はそれについてコメントしました。 – chrylis

関連する問題