Java 如何确保Jackson中的字段包含

Java 如何确保Jackson中的字段包含,java,jackson,Java,Jackson,我有一个POJO,我想从JSON创建这个类的一个实例。我正在使用jackson将JSON转换为Object。我想确保JSON将包含我的POJO的所有属性。JSON可能包含其他额外字段,但必须包含POJO的所有属性 例如: class MyClass { private String name; private int age; public String getName(){return this.name;} public void setName(Strin

我有一个POJO,我想从JSON创建这个类的一个实例。我正在使用jackson将JSON转换为Object。我想确保JSON将包含我的POJO的所有属性。JSON可能包含其他额外字段,但必须包含POJO的所有属性

例如:

class MyClass {
    private String name;
    private int age;

    public String getName(){return this.name;}
    public void setName(String name){this.name = name;}
    public int getAge(){return this.age;}
    public void setAge(int age){this.age = age;}
}
JSON#1

JSON#2


在这里,我希望JSON#1成功转换为MyClass,但JSON#2应该失败。我该怎么做?这有注释吗?

嗯,有一个注释可以应用于您的属性,说明它们是必需的

@JsonProperty(required = true)
public String getName(){ return this.name; }
糟糕的是,截至目前(2.5.0),不支持反序列化验证

...
Note that as of 2.0, this property is NOT used by BeanDeserializer: support is expected to be added for a later minor version.

2013年有一个未解决的问题需要添加验证:

可能重复感谢您的回答。
@JsonProperty(required = true)
public String getName(){ return this.name; }
...
Note that as of 2.0, this property is NOT used by BeanDeserializer: support is expected to be added for a later minor version.