onu*_* rr 1 javascript editor google-sheets
我一直在尝试根据一些加密货币市场的价格进行计算。与此同时,我尝试学习在脚本编辑器中编写一个获取股票数据的自定义函数。到目前为止,我可以通过以下代码获取数据;
function getkrakenbtc() {
var myUrl = "https://api.kraken.com/0/public/Ticker?pair=XBTUSD";
var jsonData = UrlFetchApp.fetch(myUrl);
var jsonString = jsonData.getContentText();
return jsonString;
}
Run Code Online (Sandbox Code Playgroud)
但是这个函数将所有数据放入一个单元格中,如下所示:
{
"error": [],
"result": {
"XXBTZUSD": {
"a": ["6828.90000", "1", "1.000"],
"b": ["6822.40000", "3", "3.000"],
"c": ["6828.30000", "0.45700000"],
"v": ["8345.28377914", "11241.98107284"],
"p": ["7079.63828", "7171.18596"],
"t": [22419, 30041],
"l": ["6751.00000", "6751.00000"],
"h": ["7432.70000", "7529.70000"],
"o": "7410.10000"
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后我借助公式得到我想要的部分。如何使用 javascript 获取上述数组的 a 或 b 项?
转换jsonString为对象JSON.parse()。然后您可以使用点或括号表示法来访问您想要的值。这是一个例子。
function getAandB() {
var jsonString = getkrakenbtc();
var jsonObject = JSON.parse(jsonString);
var a = jsonObject["result"]["XXBTZUSD"]["a"];
var b = jsonObject["result"]["XXBTZUSD"]["b"];
}
function getkrakenbtc() {
var myUrl = "https://api.kraken.com/0/public/Ticker?pair=XBTUSD";
var jsonData = UrlFetchApp.fetch(myUrl);
var jsonString = jsonData.getContentText();
return jsonString;
}
Run Code Online (Sandbox Code Playgroud)
如果您想要可在工作表中使用的自定义函数,您可以根据自定义函数参考文档调整上述内容。例如:
/**
* Get the array of values defined by 'ticker' and 'letter' from the selected cell, which contains valid JSON.
*
* @param {String} ticker Example: "XXBTZUSD"
* @param {String} letter Example: "a" or "b"
* @param {String} cell The cell containing the JSON
* @return The array of values
* @customfunction
*/
function GETVALUE(ticker, letter, cell) {
var jsonObject = JSON.parse(cell);
return jsonObject["result"][ticker][letter];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3182 次 |
| 最近记录: |