1. 程式人生 > >【FAQ】解決org.json.JSONException: JSONArray[0] is not a JSONArray.

【FAQ】解決org.json.JSONException: JSONArray[0] is not a JSONArray.

【報錯】

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插入