小编典典

在Java中的Jackson JSON反序列化过程中忽略缺少的属性

json

在这个例子中

class Person {
   String name;
   int age;
}

如果JSON对象缺少属性“ age”,

{
  name : John
}

Person person = objectMapper.readValue(jsonFileReader, Person.class);

有人JsonMappingException说它不能反序列化。在反序列化期间是否有 注释 可忽略丢失的字段?

谢谢


阅读 518

收藏
2020-07-27

共1个答案

小编典典

我想你想要的是

@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
public class Person {
  ...
}

这就是Jackson 1.x的方式。我认为2.x中有一种新方法。就像是

@JsonInclude(Include.NON_NULL)
public class Person {
  ...
}

这些将告诉Jackson仅序列化不为null的值,并且在反序列化缺少的值时不会抱怨。我认为它将只是将其设置为Java默认值。

2020-07-27