我使用 GSON 解析一个数组列表,这给了我
[["1","user","test"],["2","another","test",["3","last one","test"]]
而且我不能 JSON 解析它,所以我可以像循环一样遍历它
for(i < 0; i < obj.length; i++) {
console.log("some sentence" + obj[i][0] + " etc etc")
}
它让我给出了该数组字符的总长度。
JSON 结构格式不正确。我认为在第二个数组之后缺少“]”。改正后是这样的。。。
[
[
"1",
"user",
"test"
],
[
"2",
"another",
"test"
],
[
"3",
"last one",
"test"
]
]
编辑 :
可能您的解析方法不正确。您的字符串是 JSONArray,其中还有另外 3 个 JSONArray。所以,解析应该是这样的
String str = "your json string above" ;
try {
JSONArray array = new JSONArray(str);
for(int i = 0 ; i < array.length() ; i++){
JSONArray nestedArray = array.getJSONArray(i);
for(int j = 0 ; j < nestedArray.length() ; j++){
System.out.println("" + nestedArray.getString(j) + "\n");
}
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
要解析您的 JSON 字符串(更正它添加 missing ]
),您可以执行以下操作:
String json = "[[\"1\",\"user\",\"test\"],[\"2\",\"another\",\"test\"],[\"3\",\"f**er\",\"test\"]]";
Type listType = new TypeToken<ArrayList<ArrayList<Object>>>(){}.getType();
ArrayList<ArrayList<Object>> list = new Gson().fromJson(json, listType);
for(List innerList : list)
for(Object o : innerList){
System.out.println(o);
这将为您提供一个简单的数据结构,可以轻松满足您的需求。