0

我使用 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")
}

它让我给出了该数组字符的总长度。

4

2 回答 2

1

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();
}
于 2013-10-19T02:59:17.227 回答
0

要解析您的 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);

这将为您提供一个简单的数据结构,可以轻松满足您的需求。

于 2013-10-19T19:01:11.713 回答