Парс JSON Почтальон ответ - PullRequest
0 голосов
/ 25 июня 2018

У меня есть тест в Почтальоне, где я делаю почтовый запрос и мне нужно разобрать ответ json

Ответ выглядит так:

"aPIProxy" : [ {
    "name" : "SFDC-UpdateLoginTime-v1",
    "revision" : [ {
      "configuration" : {
        "basePath" : "/",
        "steps" : [ ]
      },
      "name" : "1",...some attributes}]

и мне нужно получить что-то вроде:

"name" : "SFDC-UpdateLoginTime-v1"
"name" : "1"

для файла JSON с несколькими вхождениями.

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

Вы можете захватить несколько свойств 'name', используя функцию _.map() Lodash, которая является встроенным модулем it в собственном приложении. Мне пришлось немного изменить то, что вам нужно, поскольку клавиша name была бы дубликатом.

const result = _.map(pm.response.json().aPIProxy, data => ({
  name: data.name,
  revisionName: data.revision[0].name
}))

pm.environment.set("response", JSON.stringify(result))

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

Postman

0 голосов
/ 25 июня 2018

Нижеприведенный скрипт почтальона может вам помочь.

var jsonData = JSON.parse(responseBody);
var jsonNamesData = jsonData.aPIProxy;
console.log(jsonNamesData);
var parsedData = "";
for(var i=0;i<jsonNamesData.length;i++){
    parsedData = parsedData +"\"name\" : \"" +jsonNamesData[i].name+"\", ";
    console.log("\"name\" : \"" +jsonNamesData[i].name+"\"");
}
console.log(parsedData);
postman.setEnvironmentVariable("parsedNamesResponse", parsedData); // updating parsed data to the environment variable parsedNamesResponse
...