Почтальон - Получить значение ответа, используя ключ переменной - PullRequest
0 голосов
/ 21 апреля 2020

Я создал запрос GET в Postman, который возвращает некоторые данные в формате JSON. Я хочу получить значение ответа JSON для каждого ключа, который содержит указанную c подстроку.

Это код, который я пробовал:

var jsonData = pm.response.json();
var keys = Object.keys(jsonData);

for(var i = 0; i < keys.length; i++) 
{
    if(keys[i].has("_number"))
    { 
       console.log(jsonData.keys[i]);
    }
}

Редактировать: Проблема не в распознавании подстрок, а в возврате значений. Если я пытаюсь получить значение, используя указанный ключ c в условии (например, jsonData.Id), это работает просто отлично. Это просто не работает, когда я пытаюсь использовать переменную.

Ответы [ 3 ]

0 голосов
/ 21 апреля 2020

Вы можете проверить этот способ

var jsonData = pm.response.json();
var keys = Object.keys(jsonData);

for(var i = 0; i < keys.length; i++) 
{
    if(keys[i].includes('_number'))
    { 
       console.log(jsonData[keys[i]]);
    }
}
0 голосов
/ 21 апреля 2020

Немного другой метод, но это даст тот же вывод в консоли почтальона:

_.each(Object.entries(jsonData), (item) => {
    if(item[0].includes('_number')) {
        console.log(item[1])
    }
})
0 голосов
/ 21 апреля 2020

has () ищет только точный ключ на карте. Попробуйте это для проверки подстроки:

if(keys[i].indexOf("_number") !== -1)
{ 
   console.log(jsonData.keys[i]);
}

или даже строковая функция включает в себя ()

if(keys[i].includes("_number"))
{ 
   console.log(jsonData.keys[i]);
}
...