在例子中
- Class Person{
- String name;
- int age;
- }
如果json对象的缺少属性“age”,
- {
- name : John
- }
- Person person = objectMapper.readValue(jsonFileReader,Person.class);
它会抛出一个JsonMappingException,表示它不能反序列化.在反序列化期间是否有注释忽略缺少的字段?
谢谢
解决方法
我想你想要的是
- @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
- public class Person {
- ...
- }
那是Jackson 1.x的方式.我认为在2.x中有一种新的方式.就像是
- @JsonInclude(Include.NON_NULL)
- public class Person {
- ...
- }
这些将告诉杰克逊只能序列化不为null的值,并且在反序列化缺少值时不要抱怨.我认为它只会将其设置为Java默认值.