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

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

  • 将请求发送到URL并接收JSON响应。
  • 解析JSON响应并获取所需的元素“results”,这是一个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)”exception。

JSONArray是否有任何限制?

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

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

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