解析JSON Postman响应

时间:2018-06-25 14:06:03

标签: json rest api postman

我在Postman中进行了一个测试,我在其中进行发布请求,并且需要解析json响应

响应如下:

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

我需要得到类似的东西:

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

用于多次出现的json文件。

3 个答案:

答案 0 :(得分:1)

您可以使用Lodash的_.map()函数捕获多个“名称”属性,该函数是本机应用程序上的内置模块。我不得不稍微修改一下您需要的内容,因为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

答案 1 :(得分:0)

以下邮递员脚本可能会对您有所帮助。

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

答案 2 :(得分:0)

您应该首先使用JSON.parse解析响应,然后可以像这样对所解析的对象进行迭代:

var resObj = JSON.parse(pm.response.text())
for(var i=0; i< resObj.length; i++) {
    console.log("name: "+ resObj[i].name);
}