Jackson:反序列化(解析)null Unicode

时间:2011-05-09 11:15:05

标签: json unicode jackson

我使用Jackson反序列化(解析)一个简单的JSON事件,代码如下:

JsonParser parser = ... // Initialized via JsonFactory for simple JSON String
ObjectMapper mapper = new ObjectMapper();
HashMap<String, Object> attributes = mapper.readValue(parser,
                     new TypeReference<HashMap<String, Object>>() {});

除了JSON输入包含Unicode空值(\ u0000)之外,代码对我测试过的几种情况的预期效果如此。

更具体地说,如果上面的JSON字符串具有包含Unicode的键值对,例如

{
... (start K-V pairs),
"UniKey":"\u0000...",
... (end K-V pairs)
}

解析器正确地将所有“开始KV对”(其中不包含空Unicode)读入属性HashMap,但在遇到“UniKey”的空Unicode值时立即停止反序列化,返回空值并且从不解析其余的JSON字符串(即“结束KV对”)。

有没有办法告诉杰克逊在反序列化中忽略空Unicode?

1 个答案:

答案 0 :(得分:1)

包含null(\ u0000)的字符串由某些Java方法读取/打印,而不是由其他方法读取/打印,因此它们仅显示为截断的。因此,该值实际上可能存在,但不会像System.out.println()那样显示。