2013-02-15 102 views
0

我有一個從HttpClient調用數據返回的字符串。Android中的JSON數組或對象錯誤

Data = {"result":[{"id":"2","contextID":"1","name":"Kitchen","image":"81"}, 
{"id":"1","contextID":"1","name":"Living Room","image":"18"}, 
{"id":"3","contextID":"1","name":"Toilet","image":"75"}]} 

我然後執行此代碼:

resultArray = new JSONArray (data); 

並將這種JSONArray。但是,我得到一個JSONException錯誤:

JSONObject cannot be converted to JSONArray 

當然,這是一個JSONArray而不是JSONObject?或者它是JSONObjects的JSONObject?我對JSON相當陌生,我想循環使用這些導入的值來創建新的位置。有沒有一個簡單的或既定的方法來做到這一點?

很多謝謝。

回答

1

它是一個json對象,裏面有JSONObjects的JSONArray。 {}表示對象,[]表示數組。因此,您將頂級字符串作爲JSON對象,然後將結果參數作爲數組獲取,然後將每個索引作爲對象獲取到結果中(並且可以通過getString等獲取這些參數)。

+0

非常感謝,終於搞定了! – 2013-02-15 21:23:07

2

Data是一個JSONObject,而Data["result"]是一個包含JSONObjects的JSONArray。

+0

非常感謝您的幫助! – 2013-02-15 21:23:35

0

數據實際上是一個JSONObject,其中包含名爲「result」的JSONArray。如果你想獲得JSONArray你必須做到以下幾點:

JSONObject dataObj = new JSONObject(data); 
JSONArray dataArr = dataObj.getJSONArray("result"); 

以供將來參考,因爲你是新來的JSON,在{}括號的數據是一個JSONObject和數據在[]括號是一個JSONArray。數組和對象可以嵌套在一起,有時很難閱讀。如果您需要閱讀幫助,我建議您格式化數據。我個人使用http://jsonformatter.curiousconcept.com/來格式化和驗證我的數據。我沒有任何關聯的網站。我只是覺得它非常有用。