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) 
}