解析 JSON Postman 响应
Posted
技术标签:
【中文标题】解析 JSON Postman 响应【英文标题】:Parse JSON Postman response 【发布时间】:2018-12-04 03:27:40 【问题描述】:我在 Postman 中进行了一个测试,在那里我执行了一个 post 请求并需要解析 json 响应
响应如下所示:
"aPIProxy" : [
"name" : "SFDC-UpdateLoginTime-v1",
"revision" : [
"configuration" :
"basePath" : "/",
"steps" : [ ]
,
"name" : "1",...some attributes]
我需要得到类似的东西:
"name" : "SFDC-UpdateLoginTime-v1"
"name" : "1"
对于多次出现的 json 文件。
【问题讨论】:
格式正确后需要做什么?将其存储为变量还是仅将其记录到控制台?看看 lodash 的_. map()
函数,得到你需要的东西 - lodash.com/docs/#map
【参考方案1】:
您应该首先使用JSON.parse
解析响应,然后您可以像这样迭代解析的对象:
var resObj = JSON.parse(pm.response.text())
for(var i=0; i< resObj.length; i++)
console.log("name: "+ resObj[i].name);
【讨论】:
【参考方案2】:您可以使用 Lodash 的 _.map()
函数捕获多个“名称”属性,该函数是在本机应用程序上构建的 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))
然后,这会将所有值存储在一个环境变量中,供您在另一个请求的其他地方使用。
【讨论】:
【参考方案3】:以下邮递员脚本可能会对您有所帮助。
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
【讨论】:
以上是关于解析 JSON Postman 响应的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Postman、GET request Express 中显示 JSON 响应?
Gson+GsonFormat+Postman简单粗暴解析json
c# JSON REST 响应通过 3 种不同的方法(WebRequest、RESTSharp、HttpClient)是空的,但 Postman 和浏览器可以工作