当将空值放入ObjectNode实例时,我希望jackson忽略它们。(我知道在序列化pojo时如何防止空值)在这里,我手动地将键/值放在ObjectNode实例中,当值为null时,我希望jackson忽略要忽略的键/值。
例如
objectNode.put("Name", null);
应该被忽略,并且不会插入到objectNode中。
发布于 2014-08-14 11:42:40
您可以使用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
}
}
发布于 2022-08-22 15:08:33
您可以使用
ObjectNode.putNull(FieldName)
https://stackoverflow.com/questions/25282852
复制相似问题