繁体   English   中英

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

[英]How to Check a value in a nested JSON using Postman

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

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

我正在尝试测试我的响应正文是否具有“ViolationID”:“110971”。

我在邮递员中尝试了以下代码:

var jsonData =JSON.parse(responseBody);
tests["Getting Violation Id"] = jsonData.resultset.violations.hpd[0].ViolationID === 110971;

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

  1. 在末尾添加缺少的右大括号。
  2. 在索引中添加缺失的 0,如下所示: resultset.violations.hpd[0].0.ViolationID

如果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');
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM