2017-05-06 30 views
1

这是我第一次玩JSON API和我的Java是超级生锈的。使用Google表格和Google脚本 - 如何将单元格中的条目插入变量?

我试图做到以下几点:

  1. 从谷歌表细胞进入功能getSymbol(名)拉的字符串。在这种情况下,字符串应该是“以太坊”
  2. 将名称变量插入到一个url字符串中,这是我想要取得生命的JSON的位置。在这种情况下,API输出看起来是这样的:

    [ { “ID”: “复仇”, “名”: “复仇”, “符号”: “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”。

以下是我的代码。每当我运行它,我得到一个错误,说我的名字变量是不确定的,导致类似如下的URL(说的不是“复仇”,“不确定”):

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

的返回类型为对象的数组,即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; 

    } 
+0

这工作。谢谢!! – PeopleVultures

相关问题