Как добавить элемент в тело JSON из предварительного запроса или файла данных? - PullRequest
1 голос
/ 29 апреля 2019

Попытка выяснить, как я могу вставить новую строку под net. По сути, мне нужно выяснить, сколько их уже есть, поэтому я не перекрываю их и добавляю новый.

Оригинал: { "jsonrpc": "2.0", "метод": "обновить", "params": { "VID": 10, "_Обновить": { "данные": { "LAN": { "сеть": [ {"id": 1, "name": "FIRST"}, {"id": 15, "name": "SECOND"} ] } } } }, "id": 1 }

хотел добавить:

{ "id": 8, "name": "THIRD" }

Так что ФИНАЛ будет новый { "jsonrpc": "2.0", "метод": "обновить", "params": { "VID": 10, "_update": {"data": {"lan": {"net": [{"id": 1, "name": "FIRST"}, {"id": 15, "name": "SECOND" }, {"id": 8, "name": "THIRD"}]}}}}, "id": 1}

уточнить: Я сделаю POST, который извлекает данные json - который не является фиксированным, он может содержать больше элементов или меньше при каждом запуске POST.

Я хотел бы добавить что-то к этому json и использовать его, чтобы отправить его в другой запрос.

Я полагаю, что мог бы сохранить ответ в переменной env.varg, используя TEST, эта часть работает, затем используйте эту переменную env.variable в качестве тела в другом POST, это также работает

теперь мне просто нужно выяснить, как добавить что-то в JSON, который я собрал в своем первом POST, это оригинальный вопрос:)

1 Ответ

0 голосов
/ 29 апреля 2019

как третья запись хранится в файле данных?

Если она хранится в виде строки, я бы предложил прагматичный способ: просто добавьте переменную в тело 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
}

, если данные хранятся отдельно, например, в виде идентификатора и имени, просто добавьте это в сценарий предварительного запроса:

var myNewObject = { id : data.id, name:data.name};
pm.globals.set("myNewObject", JSON.stringify(myNewObject));

Этот фрагмент добавит новый объект сидентификатор и имя, и установите его с идентификатором данных и именем из вашего файла данных.Он будет храниться как глобальная переменная 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» должен быть известен (например, из глобальной переменной).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...