2014-09-10 52 views
1

解析JSON我有這樣的JSON:問題在Java中

[{ 
    "name": "prog 1", 
    "show": [{ 
     "name": "n1", 
     "time": "01.10 " 
    }, { 
     "name": "n2", 
     "time": "01.35 " 
    }] 
}, { 
    "name": "prog 2", 
    "show": [{ 
     "name": "n1", 
     "time": "01.10 " 
    }, { 
     "name": "n2", 
     "time": "01.35 " 
    }] 
}] 

現在試圖解析它在Java中,如:

JSONObject json=new JSONObject(json_str); 

拋出一個異常,因爲它不具有{開始,但[因爲它是一個數組。我可以分析這個沒有JS問題,但aparently我不能用這個字符串加載JSONArray ...

+0

檢查本 - > http://stackoverflow.com/questions/5650171/parsing-json-array-within-json-object如果它能幫助。 – akshayb 2014-09-10 12:30:20

+1

如果你不僅描述你得到的異常,而且還在你的問題中包含堆棧跟蹤,有時候我們可以更容易地幫助你。 – DanielBarbarian 2014-09-10 12:31:21

+1

輸入包含一個數組,而不是一個對象。 – 2014-09-10 12:35:45

回答

2

使用:JSONArray objArray = new JSONArray (json_str);

// to access the individual objects inside the array: 

for(int i=0;i<objArray.length();i++) 
{ 
    JSONObject obj = objArray.getJSONObject(i); 
} 
2

你有沒有嘗試過這樣的:

JSONArray arr = new JSONArray(stringWithContent); 

然後訪問它像:

for(int i = 0; i<arr.length();i++){ 
     System.out.println(arr.get(i)); 
    } 
+0

謝謝,似乎我錯過了這個構造函數 – user1126068 2014-09-10 12:45:49

0

你可以嘗試下面的代碼

JSONObject jObject = new JSONObject(json_str); 
JSONArray array = jObject.getJSONArray("show");  
for(int i = 0 ; i < array.length() ; i++) 
{ 
    System.out.println(array.getJSONObject(i).getString("name")); 
    System.out.println(array.getJSONObject(i).getString("time")); 
} 

這將有幫助...