ネストされた結果の動的 JSON キーへのアクセス
JSON データでは、キーは動的になる可能性があります。つまり、キーはオブジェクトごとに異なります。これにより、特にネストされた構造内で特定の値にアクセスするときに問題が発生する可能性があります。
ネストされた結果で動的 JSON キーを処理するには、JSONObject クラスの key() メソッドを利用できます。このメソッドは、JSON オブジェクト内の使用可能なキーを反復処理できる反復子を返します。
次の JSON 構造について考えてみましょう。
{ "status": "OK", "search_result": [ { "product": "abc", "id": "1132", "question_mark": { "141": { "count": "141", "more_description": "this is abc", "seq": "2" }, "8911": { "count": "8911", "more_desc": "this is cup", "seq": "1" } }, "name": "some name", "description": "This is some product" }, { "product": "XYZ", "id": "1129", "question_mark": { "379": { "count": "379", "more_desc": "this is xyz", "seq": "5" }, "845": { "count": "845", "more_desc": "this is table", "seq": "6" }, "12383": { "count": "12383", "more_desc": "Jumbo", "seq": "4" }, "257258": { "count": "257258", "more_desc": "large", "seq": "1" } }, "name": "some other name", "description": "this is some other product" } ] }
「question_mark」フィールドのコンテンツにアクセスするには「search_result」配列内のオブジェクトごとに、次のコードを使用できます。
for (JSONObject searchResult : searchResults) { JSONObject questionMark = searchResult.getJSONObject("question_mark"); Iterator<String> keys = questionMark.keys(); while (keys.hasNext()) { String currentDynamicKey = keys.next(); // Get the value of the dynamic key JSONObject currentDynamicValue = questionMark.getJSONObject(currentDynamicKey); // Do something here with the value... } }
このコードは、「question_mark」フィールド内の使用可能なキーを反復処理し、各キーに関連付けられた値を取得します。これらの値をさらに処理または表示するために使用できます。
以上がネストされた結果の動的 JSON キーにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。