使用Google表格和Google脚本 - 如何将单元格中的条目插入变量?

时间:2017-05-06 21:29:43

标签: google-sheets

这是我第一次玩JSON API而且我的java非常生疏。

我试图执行以下操作:

  1. 将Google表格单元格中的字符串拉入函数getSymbol(name)。在这种情况下,字符串应为" Ethereum"
  2. 将name变量插入到url字符串中,这是我想要生效的JSON。在这种情况下,API输出如下所示:

    [     {         " id":" ethereum",         " name":" Ethereum",         "符号":" ETH",         "排名":" 2",         " price_usd":" 95.3675",         " price_btc":" 0.0605977",         " 24h_volume_usd":" 152223000.0",         " market_cap_usd":" 8713986432.0",         " available_supply":" 91372705.0",         " total_supply":" 91372705.0",         " percent_change_1h":" 0.38",         " percent_change_24h":" 1.38",         " percent_change_7d":" 37.07",         " last_updated":" 1494105266"     } ]

  3. 接下来我想拉出"符号"来自JSON的项目并将其返回到电子表格。在这种情况下,该功能将接受"以太坊"并返回" ETH"。

  4. 以下是我的代码。每当我运行它时,我得到一个错误,说我的名称变量未定义,导致URL看起来像这样(说" undefined"而不是" ethereum"):

    https://api.coinmarketcap.com/v1/ticker/undefined/?convert=USD

    我做错了什么?

    function getSymbol (name) {
    var url = "https://api.coinmarketcap.com/v1/ticker/"+name+"/?convert=USD";
      var response = UrlFetchApp.fetch(url);
      var text = response.getContentText();
    
      var json = JSON.parse(text);
      var sym = json["symbol"];
    
      return sym;
    
      }
    

1 个答案:

答案 0 :(得分:1)

返回类型是一个对象数组,即json = [{object1},{object2}] 即使只有一个元素,你仍然需要像这样访问它

var sym = json[0]["symbol"]
//or
var sym = json[0].symbol

您的最终代码如下所示:

function getSymbol (name) {
var url = "https://api.coinmarketcap.com/v1/ticker/"+name+"/?convert=USD";
  var response = UrlFetchApp.fetch(url);
  var text = response.getContentText();

  var json = JSON.parse(text);
  var sym = json[0]["symbol"];

  return sym;

  }