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

Postman Test中访问JSON嵌套子对象返回undefined如何解决

Postman Test 提取嵌套字段正确实现

你出现报错的核心原因是没有先将接口响应的JSON字符串转为可操作的JS对象,也没有从根对象下获取Line数组,直接调用Line.length自然找不到对应层级的数据,你之前的属性访问语法本身是正确的。

正确的完整代码如下:

// 第一步:获取接口响应的JSON对象(Postman Test 固定语法)
const resJson = pm.response.json();
// 第二步:从根对象下取Line数组,增加非空校验避免异常
const lineArr = resJson.Line || [];
let ProductArray = [];

for (let i = 0; i < lineArr.length; i++) {
    // 增加类型判断,过滤非销售项类型的Line节点,避免无对应字段报错
    if (lineArr[i].DetailType === "SalesItemLineDetail" && lineArr[i].SalesItemLineDetail?.ItemRef) {
        ProductArray.push({
            "value": lineArr[i].SalesItemLineDetail.ItemRef.name
        })
    }
}

// 可选操作:将结果存入Postman局部变量供后续请求调用
pm.variables.set("product_array", JSON.stringify(ProductArray));

补充说明

如果只需要获取单个Line项的name值,可以直接通过索引定位,不需要遍历:

const firstName = resJson.Line[0].SalesItemLineDetail.ItemRef.name
pm.variables.set("first_item_name", firstName);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 07:24:07