3

私はJSONAndroidアプリケーションで次のように使用しています:

  • URLにリクエストを送信し、JSONレスポンスを受信します。
  • JSON応答を解析し、JSON配列である必要な要素「results」をフェッチします。
  • この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に達した後、 「org.json.JSONException:Index 50 out of range [0..50)」例外をJSONObject perResult = results.getJSONObject(i)スローすることです。

JSONArrayに制限はありますか?

4

2 に答える 2

8

numberOfItemsInRespですか?これを行うことをお勧めします:

JSONArray results = jsonResponse.getJSONArray("results");
final int numberOfItemsInResp = results.length();
for (int i = 0; i < numberOfItemsInResp; i++){
    JSONObject perResult = results.getJSONObject(i);
}
于 2012-12-11T19:59:34.190 に答える
0

簡単なデバッグを行って、配列がどのように見えるかを確認してください。提供するインデックスとして配列に十分なアイテムがない可能性があります。上記の答えは、この点でかなり明確です。

于 2012-12-11T20:03:18.993 に答える