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

Postman如何循环遍历数组并将metersToNextBollard值存入环境变量

Postman 环境变量存储实现方案

场景1:响应直接返回目标数组

你的硬编码方案可以通过索引-变量名映射表+循环优化,后续新增/修改变量只需调整映射表即可,无需重复写赋值语句:

pm.test("Response is ok", function () {
    pm.response.to.have.status(200);
}); 

const resBody = pm.response.json();
// 定义索引和对应环境变量名的映射,按需新增/修改即可
const indexVarMap = [
    {index: 0, varName: "LT1-B1 MCA Afstand"},
    {index: 18, varName: "LT-B19 MCA Afstand"},
    {index: 19, varName: "DBF-D15 MCA Afstand"}
];

// 循环赋值
indexVarMap.forEach(item => {
    pm.environment.set(item.varName, resBody[item.index]?.metersToNextBollard);
});

如果你需要把数组所有元素的metersToNextBollard都存到环境变量,不需要指定特定变量名,可以直接遍历数组:

resBody.forEach((item, index) => {
    pm.environment.set(`bollard_${index}_meters`, item?.metersToNextBollard);
});

场景2:目标数组嵌套在bollards字段下

只需调整数组获取路径即可,同时你可以直接复用响应里的description字段作为变量名前缀,无需手动维护映射表:

pm.test("Response is ok", function () {
    pm.response.to.have.status(200);
}); 

const resBody = pm.response.json();
const bollardsArr = resBody.bollards;

// 方案1:沿用索引映射表的方式,仅修改数组源
const indexVarMap = [
    {index: 0, varName: "LT1-B1 MCA Afstand"},
    // 其余映射按需补充
];
indexVarMap.forEach(item => {
    pm.environment.set(item.varName, bollardsArr[item.index]?.metersToNextBollard);
});

// 方案2:直接用description字段生成变量名,适配所有元素
bollardsArr.forEach(item => {
    const varName = `${item.description} MCA Afstand`;
    pm.environment.set(varName, item?.metersToNextBollard);
});

注:代码中使用?.可选链操作符是为了避免数组元素为空时脚本报错,如果你使用的Postman版本不支持可选链,可以换成&&判断:(bollardsArr[item.index] && bollardsArr[item.index].metersToNextBollard)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 19:30:02