邮递员在 json 响应中读取 属性 名称保存在数组中

postman read property in json response which name is saved in array

我正在尝试检查邮递员 json 响应中某些属性的值。

pm.expect(jsonData.property).not.equal(null);

问题是,我需要检查我存储在数组中的多个属性。

var jsonData = pm.response.json();
var keys = ["id", "phoneNumber", "passwordHash"];

pm.test("All values have valid value", function(){
   for(var a = 0; a < keys.length; a++){
      pm.expect(jsonData.keys[a]).not.equal(null);
   };
});

但是我收到这个错误:

All values have valid type | TypeError: Cannot read property '0' of undefined

有人可以解释一下吗,请问我做错了什么? 感谢您的任何建议。

您不能使用 (.) 点来获取未知键的值,请改用 [] 括号。试试这个:

pm.expect(jsonData[keys[a]]).not.equal(null);

一个微妙的事情,在我看来,使用 i(平均指数)优于 a