Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Postman中遍历每个JSON键值对_Javascript_Json_Postman_Postman Testcase - Fatal编程技术网

Javascript 如何在Postman中遍历每个JSON键值对

Javascript 如何在Postman中遍历每个JSON键值对,javascript,json,postman,postman-testcase,Javascript,Json,Postman,Postman Testcase,我通过发送以下格式的JSON正文数据,在POSTMAN中针对POST API请求编写测试: "data": { "name": "Amber Joseph", "dob": "1988-10-13", "addressLine1": "Ap #770-9459 Quis Av.", "state": "WA", "suburb": "Beverley", "yesNo": false, "balance": 4

我通过发送以下格式的JSON正文数据,在POSTMAN中针对POST API请求编写测试:

"data": {

      "name": "Amber Joseph",
      "dob": "1988-10-13",
      "addressLine1": "Ap #770-9459 Quis Av.",
      "state": "WA",
      "suburb": "Beverley",
      "yesNo": false,
      "balance": 423.00,
      "club": [
        "Dance",
        "Sports"
      ],
      "activities" : null
      "libraryCard": {
        "uid": "2d07d77c-8756-43d4-912f-238a2ff567fe"
      }
}

我收到了类似格式的请求响应,并添加了一些详细信息:

{
  "status": "Success",
  "message": "Created new 'Student' record",
  "correlationCode": "Z848640-261354",
  "type": {
    "id": 51247,
    "name": "Student",
    "slug": "student",
    "application": {
      "name": "Willow University"
    }
  },
  "data": {
    "name": "Amber Joseph",
    "dob": "1988-10-13",
    "addressLine1": "Ap #770-9459 Quis Av.",
    "state": "WA",
    "suburb": "Beverley",
    "yesNo": false,
    "balance": 423.00,
    "club": [
      "Dance",
      "Sports"
    ],
    "libraryCard": {
      "uid": "2d07d77c-8756-43d4-912f-238a2ff567fe",
      "name": "11206"
    }
}
现在我想在这里实现两件事: 1.验证响应正文中的每个键不具有空值。请注意,我正在发送一个值为null的键,它没有返回响应。 2.每个键在请求体中发送的值是响应体中相同键返回的值。例如,如果“name”键的值为“Amber-Joseph”,那么响应键“name”也会返回“Amber-Joseph”。但我想为每一把钥匙做这个。此外,键可以推迟每次,例如,我可能会或可能不会发送它与“名称”键,因此我需要一个通用的解决方案,适用于任何键值对我发送

我可以通过以下方式循环:

let jsonData = pm.response.json();
let dKey = Object.keys(jsonData);
let dValue = Object.values(jsonData);
for(var i = 0; i < dV.length; i++ ){
        pm.expect(dV[i]).to.not.eql(null);
    } 
让jsonData=pm.response.json();
设dKey=Object.keys(jsonData);
让dValue=Object.values(jsonData);
对于(变量i=0;i
但这并不单独检查嵌套的键值对。我特别想检查“data”对象中的每个键值对。任何帮助都将不胜感激


谢谢

您可以像这样从请求中获取JSON数据:

constrequestjson=JSON.parse(pm.request.body.raw);
(这假设您在《邮递员》中使用的是原始尸体。)

然后,您可以将响应的
数据
字段与原始请求的
数据
字段进行比较:

constrequestjson=JSON.parse(pm.request.body.raw);
const responseJson=pm.response.json();
for(Object.entries(requestJson.data))的常量[reqKey,reqValue]{
expect(responseJson.data[reqKey])到.eql(requestJson.data[reqKey]);
}

从那里,您可以在响应的其余部分添加您想要执行的任何检查。

我不太明白responseJson.data[reqKey]是什么。我试图记录它的值,但似乎什么都没有得到。另外,我觉得它并没有从请求体获取所有的键值对,并对照响应键检查它们。您能详细说明您的答案吗?@MuznaZafar请尝试
console.log(pm.request.body.raw)
,并让我知道它显示了什么。这就是显示的内容:
code
{↵ “数据”:{↵ ↵ “姓名”:“Amber Joseph”,↵ “dob”:“1988-10-13”,↵ “地址线1”:“Ap#770-9459 Quis Av.”,↵ “州”:“佤邦”,↵ “郊区”:“贝弗利”,↵ “yesNo”:错,↵ “余额”:423.00,↵ “俱乐部”:[↵ “跳舞”,↵ “体育”↵ ]↵ }↵ }
code
@MuznaZafar哎呀,我有一个打字错误(
resposeJson
应该是
responseJson
)。我用修复程序更新了我的答案。你能再试一次吗?我已经找出了错误并更正了它,它仍然对我不起作用:(