为什么这个 UrlFetch 函数不能正常工作? 2.0

Why is this UrlFetch function not working properly? 2.0

这是我试图通过我的 Google 电子表格图表上的 JavaScript 工具 运行 的功能,我在另一个网站上有一个非常相似的功能,我之前已经解决了这个主题的问题:

但是尽管这看起来很相似,但我无法让它工作...

$id 是从我的电子表格单元格 (BTC_BELA) 导入的值

function NovaexchangePrice($id) {
  var response = UrlFetchApp.fetch("https://novaexchange.com/remote/v2/markets/");
  var html = JSON.parse(response.getContentText());
  try 
  {
    return parseFloat(html['markets']["last_price"]);
  }
  catch(err)
  {
    return null;
  }
}

我目前尝试了以下方法:

return parseFloat(html['markets'].last_price);
return parseFloat(html[2].last_price);
return parseFloat(html.markets[1]);

这就是那个UrlFetch(https://novaexchange.com/remote/v2/markets/)returns:

{"status": "success", "message": "Markets listed at Novaexchange", "markets":
 [{"bid": "0.00000602", "last_price": "0.00000600", "volume24h": "0.333", "marketid": 7539, "disabled": 1, "currency": "4CHN", "marketname": "BTC_4CHN", "ask": "0.00001000", "low24h": "0.00000600", "change24h": "-64.7", "high24h": "0.00001700", "basecurrency": "BTC"},
 {"bid": "0.00000000", "last_price": "0.00000001", "volume24h": "0.000", "marketid": 7347, "disabled": 1, "currency": "SPRT", "marketname": "BTC_SPRT", "ask": "0.00000001", "low24h": "0.00000001", "change24h": "0.0", "high24h": "0.00000001", "basecurrency": "BTC"},
 {"bid": "0.00000000", "last_price": "0.00000001", "volume24h": "0.000", "marketid": 7359, "disabled": 1, "currency": "XPZ", "marketname": "BTC_XPZ", "ask": "0.00000004", "low24h": "0.00000001", "change24h": "0.0", "high24h": "0.00000001", "basecurrency": "BTC"},
... and so on.

你试试html.markets[0].last_price?

编辑:

如果您只是专门寻找一个市场,您可以像这样在一系列市场中执行 forEach 循环:

html.markets.forEach(function(entry) {
    if (entry.marketname == "BTC_BELA") {
        console.log(entry.last_price);
    }
});

尽管将每个条目重新分配给一个键控对象以便于访问可能会更好:

var obj = {};
html.markets.forEach(function(entry) {
    var marketname = entry.marketname;
    obj[marketname] = entry;
});

console.log(obj["BTC_BELA"].last_price);