首页 > 解决方案 > 如何将 json 数据从 API 响应传递到环境变量

问题描述

我正在使用 POST 方法创建记录,然后在收到 JSON 响应后,我想从此响应中获取“id”并将其传递给我设置为“formId”的 Postman 环境变量。

我尝试使用 setEnvironmentVariable 来设置“formId”,其中记录 1 来自 json 数据,特别是“id”数据。

pm.test("Pass new form id to environment variable", function(){
    var jsonData = pm.response.json();
    var formId =
    pm.setEnvironmentVariable("formId", jsonData[0].id);
})

这是我不断收到的错误:

将新表单 ID 传递给环境变量 | TypeError:无法读取未定义的属性“id”

这是json响应:

{
    "created": "2019-08-12 05:45:35",
    "db": "1",
    "deleted": "0",
    "folder": "0",
    "id": "3548644",
    "language": "en",
    "name": "Test Form #3 - COPY 22",
    "num_columns": "1",
    "submissions": "0",
    "submissions_unread": "0",
    "updated": "2019-08-12 05:45:35",
    "viewkey": "coQv2xD54g",
    "views": "0",
    "submissions_today": 0,
    "data_url": "",
    "summary_url": "",
    "rss_url": "",
    "encrypted": false,
    "thumbnail_url": null,
    "submit_button_title": "Submit Form",
    "inactive": false,
    "timezone": "US/Eastern",
    "should_display_one_question_at_a_time": false,
    "can_access_1q_feature": true,
    "permissions": 150,
}

标签: javascriptapienvironment-variablespostman

解决方案


您共享的 JSON 响应中没有数组。当您编写jsonData[0]时,这意味着您正在尝试访问数组第 0 个索引处的值,但您的 jsonData 是一个具有“id”属性的对象,可以直接访问。

您只需要在测试脚本(而不是预请求脚本)中编写它:

formId = jsonData.id;
pm.environment.set('formId', formId);

测试脚本


推荐阅读