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

rei*_*ley 3 java android json

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

  • 将请求发送到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);
    }
Run Code Online (Sandbox Code Playgroud)

问题是当i达到50时,然后JSONObject perResult = results.getJSONObject(i)抛出"org.json.JSONException:Index 50超出范围[0..50)"异常.

JSONArray是否有任何限制?

wes*_*ton 6

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

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