Google Apps脚本会破坏JSON值

时间:2013-11-27 18:12:05

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

我正在使用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。我做错了什么?

2 个答案:

答案 0 :(得分:0)

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

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​​密钥来访问数据?已经尝试过,但它已超时。

答案 1 :(得分:0)

当我测试你的网址时,返回的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;
}