考虑以下语句:
String s1 = new ObjectMapper().writeValueAsString(null);
String s2 = new ObjectMapper().writeValueAsString(NullNode.getInstance());
在这两种情况下,序列化后的值s1
和s2
都是"null"
(字符串格式)。默认情况下,Jackson会毫无异常地序列化null
对象。在哪些情况下,我们需要使用NullNode
,而不是直接序列化null
发布于 2021-05-06 17:58:41
这里的"null"
是一个字符串,而不是null
值。这就是writeValueAsString
所做的:它将null值或NullNode作为"null"
字符串写入。
在Jackson中,NullNode
是一种表示null
值的特殊类型。例如,读取以下JSON将反序列化为NullNode
(单例):
JsonNode readValue = new ObjectMapper().readValue(" { \"abc\" : null }", JsonNode.class);
JsonNode jsonNode = readValue.get("abc"); // will return a NullNode
assertTrue(jsonNode == NullNode.getInstance());
https://stackoverflow.com/questions/67415632
复制相似问题