我的邮递员回应机构是:
{
"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));
答案 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但我不推荐它(使用可以轻松扩展的数组)。
环境变量名称相同,而不是硬编码,尝试根据元素名称生成它......
亚历山大