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