json - 如何防止 NULL 值插入到 Jackson 中的 ObjectNode

标签 json jackson

我希望 jackson 在将空值放入 ObjectNode 实例时忽略它们。 (我知道如何在序列化 pojo 时防止空值)这里我手动将键/值放入 ObjectNode 实例中,并且我希望 jackson 在值为空时忽略要忽略的键/值。

例如

objectNode.put("Name", null);

应该被忽略并且不会被插入到objectNode。

最佳答案

您可以使用 SerializationFeature.WRITE_NULL_MAP_VALUES 功能,但必须先将 ObjectNode 对象转换为 Map

参见下面的示例:

ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationFeature.WRITE_NULL_MAP_VALUES, false);

String nullValue = null;

ObjectNode subNode = new ObjectNode(mapper.getNodeFactory());
subNode.put("test", 1);
subNode.put("nullValue", nullValue);

ObjectNode node = new ObjectNode(mapper.getNodeFactory());
node.put("notNull", "Not null.");
node.put("nullValue", nullValue);
node.set("subNode", subNode);


MapType mapType = mapper.getTypeFactory().constructMapType(Map.class, String.class, Object.class);
Object mapValue = mapper.convertValue(node, mapType);

System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(mapValue));

以上程序打印:

{
  "notNull" : "Not null.",
  "subNode" : {
    "test" : 1
  }
}

关于json - 如何防止 NULL 值插入到 Jackson 中的 ObjectNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25282852/

相关文章:

javascript - 在 Angular 表达式中输出 JSON 数据

Android Json 对象和 json 数组发送到 httppost

javascript - (不允许的方法)外部 xml 到 json

javascript - 连接同名的json条目

java - Jackson:枚举实例方法以字符串形式返回值

java - 如何将不同的对象表示反序列化为 POJO?

json - 有没有更简单的方法使用 Golang JSON 编码在 JSON 对象上添加层?

java - 使用 jackson 和 java 获取 json 文件包含的对象

java - 使用 Jersey 和 Jackson 从 JSON 解码 JAXB 带注释的类

json - 使用@JsonFormat 时的错误时间(+1 小时)