从下面的响应结构中我想检索id字段并将其保存在邮递员的环境变量中。
我尝试了所有可行的方法,但无法这样做。
{
"childMaxAge": 13,
"selectedForBooking": [
{
"id": "0661be61-d0ae-411009-a96d-64229a",
"firstName": "Test",
"gender": {
"code": "MALE",
"name": "Male"
}
]
}
我已尝试过以下内容,但也无效。
tests["Status code is 201"] = responseCode.code === 201;
var data = JSON.parse(responseBody);
console.log(data);
var custid=JSON.parse(data.selectedForBooking[0].id);
tests ["selectedForBooking"]= postman.setEnvironmentVariable("CustId1", custid);
但它给出了错误:
评估测试脚本时出错:JSONError:1:2处的意外标记'6'0661be61-d0ae-411009-a96d-64229a ^
答案 0 :(得分:0)
无需第二次解析响应数据。
如果您不打算断言任何内容,也无需使用tests[]
。
tests["Status code is 201"] = responseCode.code === 201;
var data = JSON.parse(responseBody);
console.log(data);
var custid=data.selectedForBooking[0].id;
postman.setEnvironmentVariable("CustId1", custid);
var custid=JSON.parse(data.selectedForBooking[0].id);
试图从0661be61-d0ae-411009-a96d-64229a
中创建一个不是json格式字符串的json对象。
答案 1 :(得分:0)
查看POSTMAN : parsing a JSON response, how deep can I go into the response?
我曾经有类似的问题,我试图达到
body.entries[0].attributes.device.type
我设法通过
获得了价值body.entries[0].attributes['device.type']
确保使用单引号(我不知道为什么......)
希望这有帮助
亚历山大
答案 2 :(得分:-1)
您的JSON数据本身是错误的,这就是为什么它显示该错误。
必须为:
{
"childMaxAge": 13,
"selectedForBooking": [
{
"id": "0661be61-d0ae-411009-a96d-64229a",
"firstName": "Test",
"gender": {
"code": "MALE",
"name": "Male"
}
}
]
}
现在您可以尝试
var custid=data.selectedForBooking[0].id;
它将返回所需的值