【问题标题】:Parse JSON Postman response解析 JSON Postman 响应
【发布时间】: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

标签: json rest api postman


【解决方案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
      

      【讨论】:

        猜你喜欢
        • 2016-05-01
        • 2017-11-07
        • 2021-08-04
        • 2021-07-02
        • 1970-01-01
        • 2013-03-27
        • 1970-01-01
        相关资源
        最近更新 更多