【FAQ】解決org.json.JSONException: JSONArray[0] is not a JSONArray.
阿新 • • 發佈:2018-12-10
【報錯】
org.json.JSONException: JSONArray[0] is not a JSONArray.
at org.json.JSONArray.getJSONArray(JSONArray.java:278)
【解決】
修改程式碼:
將 .getJSONArray(0) 修改為 .getJSONObject(0)
return allTimeSlot.getJSONArray(0);
-->
return new JSONArray().put(allTimeSlot.getJSONObject(0));
【根因分析】
JSONArray的內容是在"[]"中的
JSONObject的內容是在"{}"中的
雖然allTimeSlot是一個JSONArray,但是它的第一個元素是一個JSONObject
所以要用getJSONObject(0)這個方法去獲取,而不能用getJSONArray去獲取
如下,整體是一個JSONArray,但是其中的每一個元素都是JSONObject:
[
{
"a":"aaa"
},
{
"b":"bb"
}
]
如果仍期待生成一個JSONArray,那麼應該新建一個JSONArray,然後用put方法把JSONObject插入