如何使用Postman检查嵌套JSON中的值

时间:2017-10-06 16:28:07

标签: json postman

我在POSTMAN chrome app中使用GET请求从API返回了嵌套的JSON。我的JSON看起来像这样。

react-native-keyboard-spacer

}

我正在测试我的回复正文是否有“ViolationID”:“110971”。

我在postman中试过下面的代码。

{
"resultset": {
    "violations": {
        "hpd": [
            {
                "0": {
                    "ViolationID": "110971",
                    "BuildingID": "775548",
                    "RegistrationID": "500590",
                    "Boro": "STATEN ISLAND",
                    "HouseNumber": "275",
                    "LowHouseNumber": "275",
                    "HighHouseNumber": "275",
                    "StreetName": "RICHMOND AVENUE",
                    "StreetCode": "44750",
                    "Zip": "10302",
                    "Apartment": "",
                    "Story": "All Stories ",
                    "Block": "1036",
                    "Lot": "1",
                    "Class": "A",
                    "InspectionDate": "1997-04-11",
                    "OriginalCertifyByDate": "1997-08-15",
                    "OriginalCorrectByDate": "1997-08-08",
                    "NewCertifyByDate": "",
                    "NewCorrectByDate": "",
                    "CertifiedDate": "",
                    "OrderNumber": "772",
                    "NOVID": "3370",
                    "NOVDescription": "§ 27-2098 ADM CODE FILE WITH THIS DEPARTMENT A REGISTRATION STATEMENT FOR BUILDING. ",
                    "NOVIssuedDate": "1997-04-22",
                    "CurrentStatus": "VIOLATION CLOSED",
                    "CurrentStatusDate": "2015-03-10"
                },
                "count": "1"
            }
        ]
    }
},
"count": "1",
"total_page": 1,
"current_page": 1,
"limit": [
    "0",
    "1000"
],
"status": "success",
"error_code": "",
"message": ""

tests [“Getting Violation Id”] = jsonData.resultset.violations.hpd [0] .ViolationID === 110971;

请帮忙。

2 个答案:

答案 0 :(得分:0)

我在提供的数据中发现了两个问题。以下建议可能对您有所帮助:

  1. 在最后添加缺少的结束括号。
  2. 在索引中添加缺少的0,如下所示:resultset.violations.hpd[0].0.ViolationID

答案 1 :(得分:0)

如果 hpd 数组始终只包含 1 个成员,则测试可能非常简单:

pm.test('Body contains ViolationID', () => {
    const jsonBody = pm.response.json();
    const violationId = jsonBody.resultset.violations.hpd[0]["0"].ViolationID;
    pm.expect(parseInt(violationId)).to.eql(110971);
})

然而,如果 hpd 数组可能包含多个成员,它会变得有点棘手。我建议只映射来自嵌套对象的 ViolationID 键:

pm.test('Body contains ViolationID', () => {
    const jsonBody = pm.response.json();
    const violationIds = jsonBody.resultset.violations.hpd.map(hpd => hpd["0"].ViolationID);
    pm.expect(violationIds).to.contain('110971');
})