การตอบสนอง Json - การเข้าถึงวัตถุในอาร์เรย์

ฉันกำลังพยายามเข้าถึงวัตถุในการตอบกลับ Json แต่ไม่แน่ใจว่าจะทำอย่างไร ฉันจะเข้าถึง ID 11 โดยใช้ความมั่นใจได้อย่างไร โดยที่ ObjID1 และ ObjID2 เป็น UUID ที่ไม่ซ้ำกัน

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

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



person teddybearzero    schedule 06.05.2019    source แหล่งที่มา


คำตอบ (1)


เพื่อยืนยันค่าขององค์ประกอบที่คุณสามารถใช้ได้

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

การทำดัชนีฟิลด์ ID ด้วย [0] ช่วยให้คุณรับ ID ของออบเจ็กต์ JSON แรกในอาร์เรย์

หากคุณต้องการรับค่านี้เพื่อการประมวลผลเพิ่มเติม คุณสามารถแยกค่าได้ดังนี้:

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

เราแยกวิเคราะห์ JSON และโดยใช้วิธี path.get เราบันทึกอาร์เรย์ของวัตถุ JSON ไว้ในรายการ HashMaps แต่ละองค์ประกอบในรายการคือวัตถุ JSON

เพื่อเข้าถึง JSON Object แรกที่คุณสามารถใช้ได้

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

จากนั้นใช้วิธีการ HashMap แบบคลาสสิก คุณจะได้รับองค์ประกอบเฉพาะใน JSON Object ดังนี้:

jsonObject.get("ID");

ข้างต้นจะส่งกลับ "11" โปรดทราบว่าคุณจะต้องทำการส่งไปยัง String เพื่อรับค่า ค่าใน HashMap เป็นออบเจ็กต์เนื่องจากออบเจ็กต์ JSON ในอาร์เรย์อาจมีอาร์เรย์หรือออบเจ็กต์ที่ซ้อนกัน

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