Как извлечь и настроить несколько переменных коллекции из тела почтальона

#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)})