试图弄清楚如何在net下插入新行。 基本上,我需要弄清楚那里已经有多少个,所以我不会重叠它,并添加一个新的。
原件: { “ jsonrpc”:“ 2.0”, “ method”:“更新”, “参数”:{ “ vid”:10, “ _update”:{ “数据”:{ “ lan”:{ “净额”:[ {“ id”:1,“名称”:“ FIRST”}, {“ id”:15,“名称”:“第二”} ] } } } }, “ id”:1 }
想要添加:
{ “ id”:8 “名称”:“第三” }
所以最终会是 新 { “ jsonrpc”:“ 2.0”, “ method”:“更新”, “参数”:{ “ vid”:10, “ _update”:{“ data”:{“ lan”:{“ net”:[{“ id”:1,“ name”:“ FIRST”},{“ id”:15,“ name”:“ SECOND” },{“ id”:8,“名称”:“ THIRD”}]}}}},“ id”:1}
要澄清: 我将做一个POST来检索json数据-这是不固定的,每次我运行POST时它可能包含更多或更少的元素。
我想在此json中添加一些内容,并使用它将其发布到另一个请求中。
我认为我可以使用TEST将答复存储在一个环境变量中,该部分有效, 然后将此env.variable用作另一个POST中的主体,效果也很好
现在我只需要弄清楚如何在我的第一个POST中收集的JSON中添加一些内容,这就是原始问题:)
答案 0 :(得分:0)
第三个条目如何存储在数据文件中?
如果将其存储为字符串,我建议采取务实的方式: 只需将变量添加到JSON正文中(但不要忘记逗号)。
{
"jsonrpc": "2.0",
"method": "update",
"params": {
"vid": 10,
"_update": {
"data": {
"lan": {
"net": [
{
"id": 1,
"name": "FIRST"
},
{
"id": 15,
"name": "SECOND"
},
{{data_value}}
]
}
}
}
},
"id": 1
}
如果数据是分开存储的,例如作为ID和名称,只需将其添加到您的pre-request-script中即可:
var myNewObject = { id : data.id, name:data.name};
pm.globals.set("myNewObject", JSON.stringify(myNewObject));
此代码段将添加一个具有ID和名称的新对象,并使用数据文件中的数据ID和名称对其进行设置。它将被存储为全局变量myNewObject,可以在您的身体中使用(不要忘记逗号;-)):
{
"jsonrpc": "2.0",
"method": "update",
"params": {
"vid": 10,
"_update": {
"data": {
"lan": {
"net": [
{
"id": 1,
"name": "FIRST"
},
{
"id": 15,
"name": "SECOND"
},
{{myNewObject}}
]
}
}
}
},
"id": 1
}
另一个想法是将整个“ net”数组存储在一个变量中。您可以将新对象附加到此数组。但是在这种情况下,必须知道整个“ net”数组(例如,通过全局变量)。
JsonBody
{
"jsonrpc": "2.0",
"method": "update",
"params": {
"vid": 10,
"_update": {
"data": {
"lan": {
"net": {{netArray}}
},
"id": 1
}
请求前脚本
var myNewObject = { id : data.id, name:data.name};
var netArray = JSON.parse(pm.globals.get("netArray"));
netArray.push(myNewObject); //<-- Adds new object to the array
pm.globals.set("netArray", JSON.stringify(netArray));