如何在预请求或数据文件的json主体中添加元素?

时间:2019-04-28 21:00:24

标签: json postman

试图弄清楚如何在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中添加一些内容,这就是原始问题:)

1 个答案:

答案 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));