JSONArray异常:索引50超出范围[0..50)。 JsonArray有没有限制

时间:2012-12-11 19:54:02

标签: java android json

我正在以下列方式在我的Android应用程序中使用JSON

  • 将请求发送到网址&收到JSON回复。
  • 解析JSON响应&获取所需的元素“结果”,这是一个 JSON数组。
  • 循环播放此JSON数组的每个第i个元素并继续使用 必要的操作

代码:

Integer numberOfItemsInResp = pagination.getInt("items");
    JSONArray results = jsonResponse.getJSONArray("results");
    for (int i = 0; i < numberOfItemsInResp; i++){
        JSONObject perResult = results.getJSONObject(i);
    }

问题是 i 达到50,然后JSONObject perResult = results.getJSONObject(i)抛出“org.json.JSONException:索引50超出范围[0..50)”例外。

JSONArray是否有任何限制?

2 个答案:

答案 0 :(得分:6)

什么是numberOfItemsInResp?建议你这样做:

JSONArray results = jsonResponse.getJSONArray("results");
final int numberOfItemsInResp = results.length();
for (int i = 0; i < numberOfItemsInResp; i++){
    JSONObject perResult = results.getJSONObject(i);
}

答案 1 :(得分:0)

只需做一个简单的调试,看看你的数组是怎样的,很可能你的数组中没有足够的项目作为你提供的索引,上面的答案在这方面非常清楚。