0

我有麻烦导入JSON数据谷歌电子表格使用谷歌脚本。如果问题有点愚蠢,我没有Java知识,所以很抱歉! 我做了一些VBA编码,所以我并不完全不习惯编码。导入JSON到谷歌表给出getRrange-错误

我试图从cryptocurrency-exchange的API中提取实时汇率。我设法让它与不同的交易所的API一起工作,但这里的json看起来有些不同。

JSON我无法进入谷歌电子表格看起来像这样; {"success":true,"message":"","result":{"Bid":0.00011437,"Ask":0.00011447,"Last":0.00011447}} 我已经在https://jsonlint.com/上检查过json,它检出了。

我使用的代码是这样的;

1 function pullJSON_XRP() { 
2 var ss = SpreadsheetApp.getActiveSpreadsheet(); 
3 var sheets = ss.getSheets(); 
4 var sheet = ss.getActiveSheet(); 
5 Logger.log(sheets) 
6 var url="https://bittrex.com/api/v1.1/public/getticker?market=BTC-XRP"; // JSON call URL 
7 
8 var response = UrlFetchApp.fetch(url); 
9 var dataAll = JSON.parse(response.getContentText()); 
10 var dataSet = dataAll; 
11 Logger.log(dataSet) 
12 var rows = [], 
13 data; 
14 Logger.log(rows) 
15 
16 for (i = 0; i < dataSet.rows; i++) { 
17 data = dataSet[i]; 
18 rows.push(data.result.Bid, data.result.Ask, data.result.Last); //JSON entities 
19 } 
20 
21 dataRange = sheet.getRange(3, 1, rows.length, 3); // 4th Denotes total number of entites 
22 dataRange.setValues(rows); 
23 } 

我得到21行错误消息是在瑞典和留在瑞典,即使我改变了我的语言对谷歌,但它读取类似的错误:“在范围坐标的思想或大小无效在第一。这是因为dataRange = sheet.getRange(3, 1, rows.length, 3);不匹配出于某种原因,数组。我花了几个小时的搜索和测试,但都没有结果。我现在怀疑我的解析JSON是不正确rows.push(data.result.Bid, data.result.Ask, data.result.Last);

我试图解决的只是用IDS data.Bid, data.Ask, data.Last但我仍然得到相同的错误。

任何帮助将如此赞赏! =)

谢谢你花时间!

虚心,

布赖恩

回答

0

这是一个简单的方法:

function pullJSON_XRP() { 
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var sheets = ss.getSheets(); 
var sheet = ss.getActiveSheet(); 
var url="https://bittrex.com/api/v1.1/public/getticker?market=BTC-XRP"; // JSON call URL 
var response = UrlFetchApp.fetch(url); 
var dataAll = JSON.parse(response.getContentText()); 
var values=[[ dataAll.result.Bid,dataAll.result.Ask,dataAll.result.Last]] 
sheet.getRange("A3:C3").setValues(values) 
}