Android,无法在for循环中迭代JSONArray

时间:2016-04-03 07:53:37

标签: java android arrays for-loop jsonobject

我正在尝试以下方法来迭代JSONArray中的每个JSONObject但它不起作用。我在Log中检查JSONArray的长度,它给了我正确的长度,但是我无法在JSONArray的每个元素上获得JSONObject。此外,每个元素应该是具有8个键/值对的JSONObject。非常感谢任何反馈,谢谢。

if (getMyJSONArray() != null) {

            newJSONArray = getMyJSONArray();

            try {
                // Did this because the JSONArray was inside a JSONArray
                innerJSONArray = newJSONArray.getJSONArray(0);

            } catch (JSONException e) {
                e.printStackTrace();
            }

            if (innerJSONArray != null) {

                // This gives me the right length
                Log.i("innerJSONArray.length: ", String.valueOf(innerJSONArray.length()));

                for (int i = 0; innerJSONArray.length() < 0; i++) {

                    try {

                        // This doesn't work
                        JSONObject jsonObject1 = innerJSONArray.getJSONObject(i);

                        // This doesn't work either
                        JSONObject jsonObject2 = new JSONObject(innerJSONArray.getString(i));

            …(more code below to use if the part above works)

                    } catch (JSONException e) {
                        e.printStackTrace();
                    }


                }
            }

        }

1 个答案:

答案 0 :(得分:0)

在for循环中,innerJSONArray.length() < 0;应为i < innerJSONArray.length()

然后这一行应该按预期工作:

JSONObject jsonObject1 = innerJSONArray.getJSONObject(i);