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