JsonArray error : org.json.JSONException: JSONArray[1] not found

半世苍凉 提交于 2019-12-24 16:44:05

问题


I am currently new in Json and faced to a problem. I Searched a lot but could not find an answer to it!

I am getting a list of names from a json url. names can be duplicated in this json file but i only want to keep one record of them to my new array which i called "arr". You can see the code as following:

    JSONArray interests = json.getJSONArray("Interests");
    JSONArray arr = new JSONArray();
    int i = 0;
    int p = 0;
    int e = 0;

    for (; i < interests.length(); i++) {

        JSONArray items = interests.getJSONObject(i).getJSONArray("items");
        for (int j = 0; j < items.length(); j++) {
            String string = items.getJSONObject(j).getString("authors");
            String[] parts = string.split(",");
            for (int k = parts.length - 1; k >= 0; k--) {

                for (int a = 0; a <= arr.length(); a++) {

                    if (arr.length() == 0 || !arr.getJSONObject(a).getString("label").equals(parts[k])) {
                        JSONObject obj = new JSONObject();
                        obj.put("id", p++);
                        // obj.put("value", e++);
                        obj.put("label", parts[k]);
                        arr.put(obj);
                    }
                }
            }

        }

    }

    System.out.print(arr);
}

Problem is when i run this code I get the following error :

Exception in thread "main" org.json.JSONException: JSONArray[1] not found.

I tried to print arr.length() in each iteration and I get 1!! but I do not really know why i do receive this error?!

Thanks in advance


回答1:


A common fault of index shifting. Following example:

Array[0] = "foo";
Array[1] = "bar";
for(int i=0; i <= Array.length(); i++)
  doSomesing(Array[i]);

Array.length() will return 2, but index rage is 0 to 1, so the correct would be

for(int i=0; i < Array.lenth(); i++)


来源:https://stackoverflow.com/questions/28920603/jsonarray-error-org-json-jsonexception-jsonarray1-not-found

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!