【发布时间】:2014-12-16 17:00:27
【问题描述】:
我一直在使用 Jackson 来解析 json 文件并将属性和值加载到 Map 中。这基本上就是我的代码的样子:
Map<String, String> map = new HashMap<String, String>();
ObjectMapper mapper = new ObjectMapper();
File file = new File(pathToSource);
map = mapper.readValue(file, new TypeReference<HashMap<String, String>>() {});
这对于键是扁平的,只包含属性/值对的扁平 json 文件非常有效。
{
"attr":"value"
"attr":"value"
...
}
现在我的一个消息来源已经开始将一个键放入另一个键中,当 readValue 方法碰到内部键时会呕吐。
{ "key1":{
"attr":"value"
"attr":"value"
"key2":{
"attr":"value"
"attr":"value"
}
}
}
我需要的一个警告是我想同时捕获属性名称和值。如果我更细粒度地解析 json,一一获取属性,我无法访问属性名称。
我已经研究了一段时间,但找不到正确的组合来解析键,同时捕获属性名称和值。
欢迎提出任何建议。
【问题讨论】: