我使用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)
}解析器正确地将所有“开始K-V对”(不包含null Unicode)读取到属性HashMap中,但在遇到"UniKey“的null Unicode值时立即停止反序列化,返回一个空值,并且从不解析JSON字符串的其余部分(即”结束K-V对“)。
有没有办法告诉Jackson在反序列化时忽略null Unicode?
发布于 2011-05-10 07:21:14
包含null (\u0000)的字符串由某些Java方法读取/打印,而不是由其他Java方法读取/打印,因此它们仅显示为截断。因此,值可能实际存在,但不是由System.out.println()之类的东西显示的。
https://stackoverflow.com/questions/5936098
复制相似问题