2013-11-14 7 views
7

POJO内でアノテーションを使用してJSONを検証するには、どのような方法が最適ですか? POJOのオプションフィールドと必須フィールドを区別したいと考えています。 POJOの必須フィールドのデフォルト値を提供したいと考えています。POJO内のJSONの検証

例:

@JsonTypeInfo(use=Id.NAME, include = As.WRAPPER_OBJECT) 
@JsonTypeName("Foo") 
public class MyClass{ 
    @JsonProperty 
    private String someOptionalField; 
    @JsonProperty 
    private String someRequiredField; 
    @JsonProperty 
    private String someRequiredFieldThatIsNotNull; 
    @JsonProperty 
    private int someRequiredFieldThatIsGreaterThanZero; 
    // etc... 
} 
+4

http://docs.oracle.com/javaee/6/tutorial/doc/gircz.html –

+0

ありがとう!それはトリックを行う必要があります – user2992188

+0

あまり意味がありません。 POJO自体でこれらのプロパティを検証する理由は何ですか?検証は、アプリケーションの他の部分と疎結合された適切な検証APIによって処理され、制約が失敗した場合にはそれ以上の処理を防止する必要があります。 – Lion

答えて

1

可能なアプローチは、オブジェクトにJSONをデシリアライズし、リンクされた検証APIの@MattBallでオブジェクトを検証することです。利点は、このロジックがストレージロジックから切り離されており、検証を再実装する必要なくストレージロジックを自由に変更できることです。

JSONを検証する場合は、JSON schemaをご覧ください。