Postman 邮递员:在全局变量上保存响应
使用PostMan,如何保存以下响应:Postman 邮递员:在全局变量上保存响应,postman,Postman,使用PostMan,如何保存以下响应: [ { "id": "6254c754-5a97-43fd-9b48-c428b9bd69e5", "name": "fdsfds", "description": "fdzf", "type": 0, "createDate": "2018-08-01T17:49:29.071+01:00", "lastUpdateDate": "2018-08-01
[
{
"id": "6254c754-5a97-43fd-9b48-c428b9bd69e5",
"name": "fdsfds",
"description": "fdzf",
"type": 0,
"createDate": "2018-08-01T17:49:29.071+01:00",
"lastUpdateDate": "2018-08-01T17:49:29.071+01:00",
"lastUpdateUser": null,
"variables": null,
"instructions": null
}
]
关于变量?比如身份证
var jsonData = pm.response.json();
console.log(jsonData.id);
pm.globals.set("variable_key", jsonData.id);
您不能将JS对象直接保存在全局变量中,但可以使用JSON库将对象转换为字符串并保存,如以下代码所示:
// create the JS Object
var obj = {
foo: "bar",
some_number: 91
}
// convert the obj to string and save in the globals
pm.globals.set("my_obj", JSON.stringify(obj));
// get obj from globals and parse to JS Object again
var obj_from_globals = JSON.parse(pm.globals.get("my_obj"));
// print int he console
console.log(obj_from_globals);
您应该在控制台中看到这一点:
我想我可以通过以下方式解决这个问题:
var jsonData = pm.response.json();
for (var key in jsonData) {
if (jsonData.hasOwnProperty(key)) {
var seqDelete = jsonData[key].id;
console.log(seqDelete);
}
}
pm.globals.set("seqDelete", seqDelete);
这并不完全正确。
如果我有多维数组,这只会获取一个ID值来设置环境变量“authkey”
var obj = pm.response.json()["token"];
pm.environment.set("authkey", obj);
这是我的回应:
{id: "myId", version: "2.0", name: "test"…}
这就是我如何将响应中的id值设置到全局变量“appId”中的方法:
结果:
尝试将整个阵列字符串化。。。set(“数组”,JSON.Stringify(jsonData));我把它转换成字符串:[{“id”:“6254c754-5a97-43fd-9b48-c428b9bd69e5”,“name”:“fdsfds”,“description”:“fdzf”,“type”:0,“createDate”:“2018-08-01T17:49:29.071+01:00”,“lastUpdateDate”:“2018-08-01T17:49:29.071+01:00”,“lastUpdateUser”:null,“variables”:null,“instructions”:null}]但只想附加id。我需要用于删除的id这对我不起作用:(
var requestJson = JSON.parse(request.data);
console.log(requestJson)
postman.setGlobalVariable("appId", requestJson.id);