搜索数组和设置环境变量

时间:2017-07-11 16:50:35

标签: postman

我的邮递员回应机构是:

{
"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设置环境变量。我不需要的其他信息。我不能使用数组[数字]因为它不能保证它们在其他系统上的顺序相同。

JSON.stringify响应体是否可行?我如何提取这些值?

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

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

1 个答案:

答案 0 :(得分:0)

你可以做的是用循环解析你的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);
    }
}

这是原则。

你可以对你想要捕获的不同名称执行if / else但我不推荐它(使用可以轻松扩展的数组)。

环境变量名称相同,而不是硬编码,尝试根据元素名称生成它......

亚历山大