首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在jackson中防止向ObjectNode插入空值

如何在jackson中防止向ObjectNode插入空值
EN

Stack Overflow用户
提问于 2014-08-13 09:36:41
回答 2查看 7.4K关注 0票数 2

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

例如

代码语言:javascript
运行
复制
objectNode.put("Name", null);

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-14 11:42:40

您可以使用SerializationFeature.WRITE_NULL_MAP_VALUES特性,但在必须将ObjectNode对象转换为Map之前。

见下面的例子:

代码语言:javascript
运行
复制
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));

以上程序打印:

代码语言:javascript
运行
复制
{
  "notNull" : "Not null.",
  "subNode" : {
    "test" : 1
  }
}
票数 3
EN

Stack Overflow用户

发布于 2022-08-22 15:08:33

您可以使用

代码语言:javascript
运行
复制
ObjectNode.putNull(FieldName)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25282852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档