Android/Java での JSON 配列の反復
Android アプリから JSON オブジェクトにアクセスするには、JSON 配列をデコードする必要があります。配列を反復処理して目的のデータを抽出するには、いくつかのアプローチが考えられます。
JSONArray によるループ
簡単な方法は、for を使用して JSONArray をループすることです。ループ:
int id; String name; JSONArray array = new JSONArray(jsonString); for (int i = 0; i < array.length(); i++) { JSONObject row = array.getJSONObject(i); id = row.getInt("id"); name = row.getString("name"); }
Library
または、Gson や Jackson などのサードパーティ ライブラリを利用すると、JSON 解析プロセスが簡素化されます。たとえば、Gson を使用する場合:
Gson gson = new Gson(); Type type = new TypeToken<List<JsonObject>>() {}.getType(); List<JsonObject> rows = gson.fromJson(jsonString, type);
反復可能なアプローチ
もう 1 つのオプションは、JSONPointer クラスを使用して JSONArray を反復可能に変換することです:
JSONArray array = new JSONArray(jsonString); JSONPointer pointer = new JSONPointer("/0"); int id = (int) pointer.getValue(array); String name = (String) pointer.getValue(array, "/1");
レガシー解決策
質問で言及されているコード スニペットでは、JSONArray から反復可能な配列への暗黙的な変換が必要でした。残念ながら、この方法では互換性の問題が発生する可能性があるため、お勧めできません。
最適化
大規模なデータセットの場合は、メイン UI のブロックを避けるために、非同期タスクまたはバックグラウンド スレッドの使用を検討してください。さらに、解析されたデータをキャッシュするとパフォーマンスが向上します。
以上がAndroid/Java で JSON 配列を効率的に反復処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。