Java 验证POJO中的JSON

Java 验证POJO中的JSON,java,json,Java,Json,使用POJO中的注释验证JSON的最佳/首选方法是什么? 我希望能够区分POJO的可选字段和必填字段。 我希望能够为POJO的必填字段提供默认值 例如: @JsonTypeInfo(use=Id.NAME, include = As.WRAPPER_OBJECT) @JsonTypeName("Foo") public class MyClass{ @JsonProperty private String someOptionalField; @JsonProperty

使用POJO中的注释验证JSON的最佳/首选方法是什么? 我希望能够区分POJO的可选字段和必填字段。 我希望能够为POJO的必填字段提供默认值

例如:

@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...
}

一种可能的方法是将JSON反序列化为对象,并使用validation API@MattBall linked验证对象。其优点是,此逻辑与存储逻辑分离,您可以自由更改存储逻辑,而无需重新实现验证


如果要验证JSON,您可能需要查看一下。

谢谢!这应该是个小把戏,没什么意义。为什么要在POJO本身中验证这些属性?验证应该由适当的验证API来处理,这些API与应用程序的其他部分松散耦合,如果任何约束失败,则会阻止进一步的处理。