簡體   English   中英

將具有多個對象的json文件讀取到地圖Java中

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM