You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postman读取JSON响应中属性名存于数组的属性值报错如何解决

错误原因
  • 核心问题是JavaScript属性访问语法用错:jsonData.keys[a]的写法是先找jsonData里叫keys的属性,再取这个属性的第a个元素。但你的响应JSON里根本没有keys字段,所以jsonData.keys返回undefined,尝试读取undefined[0]就抛出了「Cannot read property '0' of undefined」的错误。
    你原本要实现的是:取keys数组第a个元素的值作为属性名,读取jsonData上对应的属性,这种动态属性读取必须用方括号语法实现。
修复后完整代码
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);
   };
});
可选优化写法

用数组的forEach方法可以简化循环逻辑,代码更易读:

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

pm.test("All values have valid value", function(){
   keys.forEach(key => {
      pm.expect(jsonData[key]).not.equal(null);
   })
});

内容的提问来源于stack exchange,提问作者pantau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 22:45:01