在 Java 中 Jackson JSON 反序列化期间忽略丢失的属性

新手上路,请多包涵

在例子中

class Person {
   String name;
   int age;
}

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

 {
    "name": "John"
}

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

它抛出一个 JsonMappingException 说它不能反序列化。在反序列化过程中是否有 注释 来忽略丢失的字段?

原文由 user379151 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

我想你想要的是

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

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

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

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

原文由 pedorro 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题