将 HTTP 请求的 JSON 格式结果解析为列

卡洛·鲁宾斯坦

用于从 API 中提取数据的 Google Apps 脚本。我想根据相关标题解析出信息。

function Fraud2() {
  var ret = "no value";
  var response = UrlFetchApp.fetch("https://fraudshield.24metrics.com/api/v1/reports/fraud.json?tracker_id=905&group[]=sub_id&group[]=partner&date_start=2018-01-18&date_end=2018-01-18&timezone=UTC&user_id=XXX&api_token=XXX",{muteHttpExceptions:true})
  var user_id = "XXX";
  var api_token = "XXX";

  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.appendRow([response]);
}

返回值被推入一个单元格中,如下所示:

 {"results":[{"tracker_id":905,"conversion":7883,"click":0,"goal":0,"approved":6511,"rejected":1372,"tracker":"Tatoo
 Integration","conversion_rate":"N\/A"},{"tracker_id":906,"conversion":1868,"click":0,"goal":0,"approved":1682,"rejected":186,"tracker":"Aise
 Integration","conversion_rate":"N\/A"},{"tracker_id":933,"conversion":413,"click":0,"goal":0,"rejected":290,"approved":123,"tracker":"Tatoo
 Invalids Integration","conversion_rate":"N\/A"}]}

我试过这个没有成功。

如何将结果整齐地排列成列?

詹姆斯·D

正如 Hink 所说,您需要先将对象转换为数组。

Hinks 解决方案可以正常工作,但下面是您尝试在帖子中使用的代码的组合。

 function Fraud2() {

    var ss = SpreadsheetApp.getActiveSheet();
    var ret = "no value";
    var response = UrlFetchApp.fetch("https://fraudshield.24metrics.com/api/v1/reports/fraud.json?tracker_id=905&group[]=sub_id&group[]=partner&date_start=2018-01-18&date_end=2018-01-18&timezone=UTC&user_id=XXX&api_token=XXX",{muteHttpExceptions:true})

    var user_id = "XXX";
    var api_token = "XXX";

  var out=JSON.stringify(response.results);
      out=JSON.parse(out)

  var title = [];
   for (var i in out[0]) {
     title.push(i);
    }
      var res = [];
      res.push(title);
    for (var i in out) {
      var values = [];
    for (var j in out[i]) {
      values.push(out[i][j]);
    }
   res.push(values);
  }

 ss.getRange(1, 1, res.length, res[0].length).setValues(res);
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章