在例子中
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默认值.