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

如何从Postman响应体中批量提取productId并动态设置collection变量

问题原因

你代码中直接写了固定字符串"orderProductId[i]",JavaScript不会自动将字符串内的i替换为循环的索引值,因此所有循环操作都在修改同一个名称的变量,无法生成按序号递增的变量名。

正确实现代码
// 解析接口返回的JSON数据
const jsonData = pm.response.json();

// 遍历items数组
for (let i = 0; i < jsonData.items.length; i++) {
    // 动态生成变量名,序号从1开始匹配你的命名规则
    const variableName = `orderProductId${i + 1}`;
    // 写入集合变量
    pm.collectionVariables.set(variableName, jsonData.items[i].productId);
}

如果你使用的环境不支持ES6模板字符串,也可以用字符串拼接的方式生成变量名:

const variableName = "orderProductId" + (i + 1);
可选优化:自动清理旧变量

多次运行接口时,旧的同规则集合变量不会自动删除,你可以在循环前添加以下代码,先清空所有orderProductId开头的历史变量,避免残留无效数据:

pm.collectionVariables.values.each(varItem => {
    if (varItem.key.startsWith('orderProductId')) {
        pm.collectionVariables.unset(varItem.key);
    }
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 16:18:03