#postman
Вопрос:
Я получаю тело в качестве
"items": [
{
"itemId": "0",
"productId": "1e212fbf-cdf2-4b30-bd60-9f315f7e4dfa"
},
{
"itemId": "1",
"productId": "1e212fbf-cdf2-4b30-bd60-9f315f7e4dfa"
},
{
"itemId": "2",
"productId": "f2b5c9e9-9c79-4430-ade6-7211d6978a27"
}
{
"itemId": "3",
"productId": "cadace2b-156a-4740-9955-fc23cf6f93aa"
}
]
Я хотел бы извлечь все ProductID и сохранить их в виде отдельных коллекционных переменных, таких как
orderProductId1
orderProductId2
orderProductId3
Я использовал
pm.collectionVariables.set("orderProductId1", jsonData.items[0].productId);
pm.collectionVariables.set("orderProductId2", jsonData.items[1].productId);
Я могу получить другое количество идентификаторов товаров/продуктов, поэтому я не хочу вручную создавать необходимое количество переменных коллекций. Я думаю, мне нужна петля?
Как создавать переменные с разными именами?
Я пытался
var jsonData = JSON.parse(responseBody);
for (var i = 0; i < jsonData.items.length; i )
{
pm.collectionVariables.set("orderProductId[i]", jsonData.items[i].productId);
}
но он создает только одну переменную orderProductId[i], а не orderProductId1, orderProductId2, orderProductId3.
Комментарии:
1. Там бы не
orderProductId${i}
получилось. Окруженный задними рядами. Однако существуют более эффективные способы извлечения этих значений и их хранения в качестве переменной.2. Спасибо! Это работает. Но я буду очень рад, если вы поделитесь другими способами, как это сделать, или укажете мне на соответствующие ресурсы.
Ответ №1:
Вы можете найти это свойство в obj и установить его в переменную коллекции с помощью чего-то вроде этого:
pm.response.json().items.find((obj, index) => { pm.collectionVariables.set(`productId_${index}`, obj.productId)})