[英]Read json file with multiple objects into a map java
注意:在此处发布此内容之前,我花了很多时间试图在此处查找有关此问题的解决方案,但找不到任何解决方案。
我有这个JSON文件,其中包含多个我想读取到地图中的json对象,每个对象的格式均为{"key1":"value1", "key2":"value2"}
,我尝试了
Map<String, String> map = MAPPER.readValue(fixture("fixtures/file_name.json"), new TypeReference<Map<String, String>>() {});
就像将文件读入列表列表Map<String, Map<String, List<String>>>
( Map<String, Map<String, List<String>>>
)一样。 有什么不一样的吗?
我的.json
文件看起来像
[
{"key1":"value1_1", "key2":"value2_1"},
{"key1":"value1_2", "key2":"value2_2"},
...
]
我还有另一个要读入地图的json文件,看起来像
[
"key1": {
"key1_1": [
{"key1_1_1":"value1", "key1_1_2":"value2"},
...
],
...
},
"key2":<int>,
"key3":{
"key3_1":[],
...
},
...
"key_n":<string>,
...
]
您能帮我正确地映射那些文件,而无需编写过多的代码行吗?
在处理从Strings到JsonArrays的嵌套对象的不同情况时,最好将地图实现为Map<String, Object>
。
遵循以下实现,
ObjectMapper mapper = new ObjectMapper();
MapType type = mapper.getTypeFactory().constructMapType(
Map.class, String.class, Object.class);
Map<String, Object> data = mapper.readValue(jsonString, type);
在这里,我将JSON读取为字符串。 您可以更改实现以适应文件读取。
我建议您使用Jackson库。
这是一个mkyong教程
只需将代码更改为
Map map = mapper.readValue(new File("c:\\whatever.json"), Map.class);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.