首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析JSON Postman响应

解析JSON Postman响应
EN

Stack Overflow用户
提问于 2018-06-25 22:06:03
回答 3查看 38.6K关注 0票数 9

我在Postman中有一个测试,其中我执行post请求并需要解析json响应。

响应如下所示:

代码语言:javascript
复制
"aPIProxy" : [ {
    "name" : "SFDC-UpdateLoginTime-v1",
    "revision" : [ {
      "configuration" : {
        "basePath" : "/",
        "steps" : [ ]
      },
      "name" : "1",...some attributes}]

我需要这样的东西:

代码语言:javascript
复制
"name" : "SFDC-UpdateLoginTime-v1"
"name" : "1"

用于多次出现的json文件。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-26 01:27:30

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

代码语言:javascript
复制
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
票数 9
EN

Stack Overflow用户

发布于 2018-06-26 17:54:09

您可以使用Lodash的_.map()函数捕获多个'name‘属性,该函数是在本机应用程序上构建的一个模块。我不得不稍微修改一下你需要的东西,因为name密钥可能是重复的。

代码语言:javascript
复制
const result = _.map(pm.response.json().aPIProxy, data => ({
  name: data.name,
  revisionName: data.revision[0].name
}))

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

然后,这会将所有值存储在一个环境变量中,以供您在其他请求中使用。

票数 6
EN

Stack Overflow用户

发布于 2020-12-06 03:28:41

首先应该使用JSON.parse解析响应,然后可以对解析的对象进行迭代,如下所示:

代码语言:javascript
复制
var resObj = JSON.parse(pm.response.text())
for(var i=0; i< resObj.length; i++) {
    console.log("name: "+ resObj[i].name);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51025422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档