Menghuraikan Kekunci JSON Dinamik dalam Keputusan JSON Bersarang
Soalan:
Cara untuk mengakses kandungan kunci yang merupakan nilai dinamik dalam hasil JSON?
Contoh 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" } ] }
Penyelesaian:
Untuk mengakses kekunci dinamik dalam hasil JSON bersarang, gunakan kaedah keys() kelas JSONObject. Kaedah ini mengembalikan Iterator yang boleh digunakan untuk mengulang kekunci dalam objek. Sebaik sahaja anda mempunyai kunci, anda boleh menggunakan kaedah getJSONObject(key) untuk mendapatkan semula nilai yang sepadan.
Berikut ialah contoh cara menghuraikan kunci dinamik dalam contoh JSON:
JSONObject searchResult = ...; // Assuming searchResult is a JSONObject JSONObject questionMark = searchResult.getJSONObject("question_mark"); Iterator keys = questionMark.keys(); while (keys.hasNext()) { String currentDynamicKey = (String) keys.next(); JSONObject currentDynamicValue = questionMark.getJSONObject(currentDynamicKey); // Do something with the dynamic key and value... }
Kod ini berulang pada kekunci dalam objek tanda_tanya dan mendapatkan semula nilai yang sepadan. Anda kemudiannya boleh menggunakan nilai ini untuk mengakses data yang anda perlukan.
Atas ialah kandungan terperinci Bagaimana untuk Mengakses Kunci Dinamik dalam Keputusan JSON Bersarang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!