我有一个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
{
"name":"Nayan",
"age": 27,
"country":"Bangladesh"
}
JSON#2
{
"name":"Nayan",
"country":"Bangladesh"
}
在这里,我希望JSON#1成功转换为MyClass,但JSON#2应该失败。我怎样才能做到这一点?是否有注释?
答案 0 :(得分:0)
嗯,有一个注释可以应用于你的属性,说它们是必需的。
@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年有一个未解决的问题是添加验证:Add support for basic "is-required" checks on deserialization using @JsonProperty(required=true)