2017-05-06 33 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

相關問題