[英]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.