簡體   English   中英

用Java讀取JSON多維數組

[英]Read JSON multi-dimensional array in Java

我有一個我無法找到解決方案的問題,因為我猜這不是很簡單...

在我的Java程序中,我收到了這樣的字符串(可悲的是,從現有的來源,我無法更改它):

["a", 1, "b", 2, ["c", "d", 3], 4]

此字符串是有效的JSON數組(沒有對象,因此沒有鍵/值對!)。 數組的內容可以是完全隨機的(例如,為空),但也可以是多維的。

我需要找到一種方法來閱讀Java。 例如,在上面的示例中, input.get(4).get(2)應該給我3 我並不在乎是否將所有內容都強制轉換為字符串,但是我需要找到一種方法來通過索引訪問數據。 數據也可以是多個字符,盡管我的示例每個元素僅顯示1個字符。

我該如何完成? 提前致謝!

編輯; 我確實知道在根數組中期望有多少個元素,但是有幾十種情況,所以我真的不想為每種情況編寫不同的東西

選擇一個JSON庫。 他們中的任何一個。

基本的org.json

JSONArray array = new JSONArray(yourString); 
JSONArray arrayTwo = array.getJSONArray(4); 
int i = arrayTwo.getInt(2);

格森:

JsonElement element = new JsonParser().parse(json);
JsonArray array = element.getAsJsonArray();
JsonArray arrayTwo = array.get(4).getAsJsonArray();
int i = arrayTwo.get(2).getAsInt();

等等

使用傑克遜2.3.0:

import com.fasterxml.jackson.databind.*;

ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree("[\"a\", 1, \"b\", 2, [\"c\", \"d\", 3], 4]");
int i = node.path(4).path(2).intValue();
System.out.println(i);

版畫

3

用於JsonNode Javadoc在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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