【问题标题】:Saving response to environment with multiple values保存对具有多个值的环境的响应
【发布时间】:2022-01-28 18:15:42
【问题描述】:

我正在尝试保存这些 ID,但它们没有保存到我的环境变量中,我看到控制台输出为:

undefined
undefined

Json 响应

{
    "savedIds": [
        95672,
        95673
    ]
}

测试

for(let i = 0; i< jsonData.savedIds.length; i++) {
pm.environment.set("savedID" + [i+1],jsonData)
console.log(pm.environment.get('savedIds' + [i+1]));
};

【问题讨论】:

    标签: javascript arrays json postman


    【解决方案1】:

    首先,您获取 JSON 数据的代码运行良好,如下所示:

    let jsonData = {
        "savedIds": [
            95672,
            95673
        ]
    };
    
    for(let i = 0; i < jsonData.savedIds.length; i++) {
      console.log(i + ", " + jsonData.savedIds[i]);
    };

    问题来自 Postman 使用的密钥。您使用的是savedID,然后是savedIds。所以,你会做这样的事情:

    for(let i = 0; i< jsonData.savedIds.length; i++) {
      pm.environment.set("savedID" + [i+1], jsonData.savedIds[i])
      console.log(pm.environment.get('savedID' + [i+1]));
    };
    

    【讨论】:

    • 我希望将其另存为:savedID2 = 95672 和 savedID3 = 95673 for(let i = 0; i&lt; jsonData.savedIds.length; i++) { pm.environment.set("savedID" + [i+1],jsonData.savedIds) console.log(pm.environment.get('savedID' + [i+1])); }; 控制台日志:(2) [95689, 95690] 0: 95689 1: 95690 (2) [95689, 95690 ] 0:95689 1:95690
    • 我只是为此添加代码,建议您再次检查我的答案:)
    【解决方案2】:

    就像做同样事情的另一种方式:

    jsonData.savedIds.forEach((id, index) => pm.environment.set(`savedID_${index + 1}`, id));
    

    或者在 Postman 中使用 Lodash:

    _.each(jsonData.savedIds, (id, index) => pm.environment.set(`savedID_${index + 1}`, id));
    

    【讨论】:

      猜你喜欢
      • 2021-12-18
      • 2011-03-30
      • 2018-10-25
      • 1970-01-01
      • 2020-09-07
      • 2019-02-21
      • 2018-08-27
      • 2016-10-22
      • 1970-01-01
      相关资源
      最近更新 更多