Postman 搜索数组并设置环境变量

Postman 搜索数组并设置环境变量,postman,Postman,我的邮递员回复正文如下: { "jobs": [ { "id": "00d21be0", "name": "IT Department" }, { "id": "h27da349", "name": "Car Sales" }, { "id": "5d2db4125", "name": "Grocery Clerk" }, { "

我的邮递员回复正文如下:

{
"jobs": [
    {
        "id": "00d21be0",
        "name": "IT Department"
    },
    {
        "id": "h27da349",
        "name": "Car Sales"
    },
    {
        "id": "5d2db4125",
        "name": "Grocery Clerk"
    },
    {
        "id": "65cd0cc1d",
        "name": "Accounting Department"
    },
    {
        "id": "8462284587",
        "name": "Nurse"
    },
    {
        "id": "9fe2ff9ee4",
        "name": "Astronaut"
    },
    {
        "id": "f40cb44799",
        "name": "Phone Operator"
    },
    {
        "id": "f4e0483257",
        "name": "Project Leader"
    }
]
}

我想做的是解析这个响应,并为id设置一个环境变量,该id与护士、宇航员和杂货店店员相关。其余的信息我不需要。我不能使用数组[number],因为它不能保证它们在其他系统上的顺序相同

JSON.stringify响应体是正确的选择吗?如何提取这些值

到目前为止,我的邮差测试是:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentalVariable("jobs", JSON.stringify(jsonData));

您可以做的是使用循环解析json主体,当您点击想要的名称时,使用相应的id设置一个全局变量,如:

// get the response body
var jsonData = JSON.parse(responseBody);
// init counter
var loop_count = 0

for (count = 0; count < jsonData.jobs.length; count++)
{
    if (jsonData.jobs[count].name == "Nurse")
    {
        var job_id = jsonData.jobs[count].id;
        postman.setEnvironmentalVariable("env_nurse", job_id);
    }
}
//获取响应主体
var jsonData=JSON.parse(responseBody);
//初始化计数器
变量循环计数=0
for(count=0;count
这是原则

您可以对要捕获的不同名称执行if/else,但我不建议这样做(使用可以轻松扩展的数组)


对于环境变量名也一样,不要硬编码,试着根据元素名生成它。

谢谢。这是有效的。我有一个问题,还有一个问题。为什么var循环计数缩进?