2016-07-07 5 views
0

RESTfulエンドポイントでJSON応答を取得しています。応答のフィールドは可変です。特に私はそれらについて気にしないいくつかのフィールドです。 いくつかの要件のため、私はJSR 303検証アノテーションをエンベロープクラスに使用してレスポンスを処理する必要があります。JSR 303で余分なフィールドを無視するにはどうすればよいですか?

応答の本文は以下のようである:

{ "parameter1":"val1", "parameter2":"val2", "optional_parameter":"valopt", "not_important_list":["v1","v2","v3"] }

私のクラスはのようなものです:私はので、余分なフィールドのマッピングエラーが表示さ

public class MessageEnvelope { 
    @NotNull 
    @NotBlank 
    public final String parameter1; 

    @NotNull 
    @NotBlank 
    public final String parameter2; 

    //the rest of the fields should be ignored 
} 

。私が気にしない余分なフィールドを無視するにはどうすればいいですか?

+1

マッピングエラーは、使用しているJSON - >オブジェクトライブラリのようです(Jackson、GSONなど)。私はそれが検証に関連しているとは思わない。私はJacksonに最もよく知られており、JSONに見られる認識されないフィールドを無視するように伝えるいくつかの方法があります。 –

+1

正しい。このコメントは私が問題を理解する助けになりました。私のケースでは、非直列化はJacksonで行われ、クラス定義の前に '@JsonIgnoreProperties(ignoreUnknown = true)'アノテーションを付けてそれらを無視することができます。 –

答えて

0

マッピングエラーは実際にJSON - > Objectライブラリにありました。この場合「ジャクソン」。

クラス定義の前に@JsonIgnoreProperties(ignoreUnknown=true)注釈で解決できました。

@JsonIgnoreProperties(ignoreUnknown=true) 
public class MessageEnvelope { 
    ... 
} 
関連する問題