【问题标题】:Google Apps Script messing up JSON valuesGoogle Apps 脚本弄乱了 JSON 值
【发布时间】:2013-11-27 18:12:05
【问题描述】:

我正在使用 Google Apps 脚本,尝试将比特币汇率信息导入 Google 电子表格。我使用此代码:

var url = "https://btc-e.com/api/2/btc_usd/ticker";
var response = UrlFetchApp.fetch(url);
var json = response.getContentText();
var lcharts_data = JSON.parse(json)

function bitcoin(){
  var b = lcharts_data["ticker"]["avg"];
  return b;
}

JSON 文件如下所示:

{"ticker":
  {"high":947.99902,
   "low":817.64001,
   "avg":882.819515,
   "vol":24625847.06001,
   "vol_cur":28189.09956,
   "last":930,
   "buy":930,
   "sell":929.998,
   "updated":1385575341,
   "server_time":1385575342}
  }
}

然而 b 返回 22.49。我做错了什么?

【问题讨论】:

标签: json google-apps-script google-sheets


【解决方案1】:

我使用类似的方法来接收数据,但我对它的解析略有不同。例如:

var url = "https://btc-e.com/api/2/btc_usd/ticker";
var response = UrlFetchApp.fetch(url);
var json = response.toString();
var lcharts_data = JSON.parse(json);

注意toString() 方法和本机Utilities.jsonParse() 方法。我试过JSON.parse(),但这对我不起作用。

还使用 API 密钥来访问数据?上面已经试过了,但是超时了。

【讨论】:

  • @user3042831 我上面提到的方法适用于我正在使用的不同 API 服务,但我无法测试你的比特币,因为我没有得到响应。
  • 正如@JacobJanTuinstra 指出的那样,Utilities.jsonParse() 已被弃用(但目前仍在使用),但更改为JSON.parse() 的结果并没有什么不同。
【解决方案2】:

当我测试你的网址时,返回的 JSON 响应是:

{  
"ticker":{  
    "high":421.70001,
    "low":418,
    "avg":419.850005,
    "vol":2361935.91952,
    "vol_cur":5620.41595,
    "last":420.168,
    "buy":420.168,
    "sell":419.853,
    "updated":1460626271,
    "server_time":1460626273
     }
}

这是返回“avg”值的代码:

var url = "https://btc-e.com/api/2/btc_usd/ticker";
var response = UrlFetchApp.fetch(url);
var json = response.getContentText();
var lcharts_data = JSON.parse(json);

function bitcoin(){
  var b = lcharts_data.ticker.avg;
  return b;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    • 2017-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多