我想解析具有无效结构的json,它具有使用Jackson
库的重复键。如果一个json有重复的键,我想将它们解压为Collection
。解析包含重复键的json
Wireshark
JSON出口)
例子:
{
"a": "a",
"a": {
"b": {
},
"b": true
}
}
但是,由于该JSON有重复键,只有最后一个值会被保留:
JsonNode tree = new ObjectMapper().readTree(json);
System.out.println(tree); // {"a":{"b":true}}
我也试过Guava
模块具有Multimap
支持,但如预期的嵌套JSON对象这是行不通的。
利用番石榴模块json的例子,我以前所示:
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new GuavaModule());
mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
Multimap read = mapper.readValue(json, Multimap.class);
System.out.println(read); // {a=[a, {b=true}]}
我应该如何解决使用Jackson
库这个问题?有没有其他的库可以支持java的这种json结构的解析?
有效的JSON的
Maven的依赖没有重复键,所以解析库不应该工作的方式,你'请求 –
SyntaxError:第3行重复键'a' –