Rumah >Java >javaTutorial >Bagaimana untuk Mengakses Kekunci JSON Dinamik dalam Hasil Bersarang?

Bagaimana untuk Mengakses Kekunci JSON Dinamik dalam Hasil Bersarang?

Linda Hamilton
Linda Hamiltonasal
2024-11-10 15:26:031032semak imbas

How to Access Dynamic JSON Keys in Nested Results?

Mengakses Kekunci JSON Dinamik dalam Hasil Bersarang

Dalam data JSON, kunci boleh menjadi dinamik, bermakna ia berbeza dari satu objek ke objek. Ini boleh menimbulkan cabaran apabila mengakses nilai tertentu, terutamanya dalam struktur bersarang.

Untuk mengendalikan kekunci JSON dinamik dalam hasil bersarang, anda boleh memanfaatkan kaedah keys() dalam kelas JSONObject. Kaedah ini mengembalikan iterator yang membolehkan anda melelar ke atas kekunci yang tersedia dalam objek JSON.

Pertimbangkan struktur JSON berikut:

{
 "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"
            }
       ]
}

Untuk mengakses kandungan medan "tanda_soalan" untuk setiap objek dalam tatasusunan "hasil_carian", anda boleh menggunakan kod berikut:

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...
    }
}

Kod ini berulang pada kekunci yang tersedia dalam medan "tanda_tanya" dan mendapatkan semula nilai yang dikaitkan dengan setiap kunci. Anda kemudian boleh menggunakan nilai ini untuk pemprosesan atau paparan selanjutnya.

Atas ialah kandungan terperinci Bagaimana untuk Mengakses Kekunci JSON Dinamik dalam Hasil Bersarang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn