我希望杰克逊在将空值放入 ObjectNode 实例时忽略它们。 (我知道如何在序列化 pojo 时防止空值)这里我手动将键/值放入 ObjectNode 实例中,并且我希望杰克逊在值为空时忽略要忽略的键/值。
例如
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
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)