Анализировать значения в массиве ответов JSON в Postman

Я безуспешно пытаюсь проанализировать значение id из ответа тела JSON и включить его в переменную окружения в Postman. Вот пример ответа Body.

"payload": {
    "transaction": {
        "amount": "1.00",
        "id": "114255633",
        "type": "AUTH",
        "result": "APPROVED",
        "card": "XXXXXXXXXXXX1111",
        "authorization-code": "TAS977",
    }
}

а вот мой сценарий в почтальоне

var jsonData = JSON.parse(responseBody);
var id = jsonData.payload[0].transaction.id;
postman.setEnvironmentVariable("id", id);

Любая помощь будет оценена по достоинству. Я думаю, что моя ошибка заключается в том, что значение, которое я ищу, вложено в массив.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
45
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Если я не ошибаюсь ... это должно сработать

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("id", jsonData["payload"]["transaction"]["id"]);

я тоже так думал изначально. Почтальон продолжает бросать TypeError: не удается прочитать свойство id of undefined

Robert Cowie 06.04.2021 22:00

Попробуй этот var jsonData = JSON.parse(responseBody); postman.setEnvironmentVariable("id", jsonData["payload"]["transaction"]["id"]);

Kartikey Vaish 06.04.2021 22:02

индивидуализация объектов сделала свое дело. так просто! Благодарность!

Robert Cowie 06.04.2021 22:05

Хорошо, отредактирую ответ.

Kartikey Vaish 06.04.2021 22:05

Единственное, что не так с вашим кодом, было бы payload[0], должно быть просто payload. Это не массив, поэтому вам не нужен [0]. Я бы также посоветовал не использовать старый синтаксис и попробовать использовать API pm.* в песочнице сейчас, автоматическое предложение покажет вам это в приложении.

Danny Dainton 06.04.2021 23:58
Ответ принят как подходящий

почтальон предоставляет метод inbuild для извлечения объекта json, который вам не нужно анализировать:

Также используйте новый pm api вместо почтальона

pm.environment.set("id", pm.response.json().payload.transaction.id);

Для получения дополнительной информации: learning.postman.com/docs/writing-scripts/script-references/‌…

Danny Dainton 07.04.2021 10:31

Другие вопросы по теме