Respon Json - Mengakses objek dalam array

Saya mencoba mengakses objek dalam respons Json, tetapi tidak yakin bagaimana caranya. Bagaimana saya bisa mengakses ID 11 dengan yakin, di mana ObjID1 dan ObjID2 adalah UUID unik?

       "ObjID1": [
            {
                "ID": "11",
                "NAME": "XYZ",
                "GENDER": "M"
            }
        ]

        "ObjID2": [
            {
                "ID": "12",
                "NAME": "Z",
                "GENDER": "F"
            }
        ]



person teddybearzero    schedule 06.05.2019    source sumber


Jawaban (1)


Untuk menegaskan nilai elemen yang dapat Anda gunakan

then().body("ObjID1.ID[0]", equalTo("11"))

Mengindeks bidang ID dengan [0] memungkinkan Anda mendapatkan ID Objek JSON pertama dalam Array.

Jika Anda ingin mendapatkan nilai ini untuk diproses lebih lanjut maka Anda dapat mengekstraknya seperti ini:

JsonPath path = JsonPath.from("json file or json String");
List<HashMap<String, Object>> listOfJsonObjects = path.get("ObjID1");

Kami menguraikan JSON dan dengan menggunakan metode path.get kami menyimpan Array Objek JSON di dalam Daftar HashMaps. Setiap elemen dalam daftar adalah Objek JSON.

Untuk mengakses Objek JSON pertama yang dapat Anda gunakan

HashMap<String, Object> jsonObject = listOfJsonObjects.get(0);

dan kemudian, dengan menggunakan metode HashMap klasik Anda bisa mendapatkan elemen tertentu di Objek JSON seperti ini:

jsonObject.get("ID");

Di atas akan mengembalikan "11" Perhatikan bahwa Anda harus melakukan cast ke String untuk mendapatkan nilainya. Nilai dalam HashMap adalah objek karena Objek JSON dalam array mungkin berisi Array atau Objek yang disarangkan.

String firstId = (String) jsonObject.get("ID");
person Fenio    schedule 08.05.2019