2017-05-06 3 views
1

これはJSON APIで初めてプレイしたときのもので、Javaは錆びたものです。GoogleスプレッドシートとGoogleスクリプトの使用 - セルから変数にエントリを挿入するにはどうすればよいですか?

私は、次のやろうとしている:

  1. は、関数getSymbol(名)にGoogleスプレッドシートのセルから文字列を引き出します。この場合、文字列は "Ethereum"にする必要があります。
  2. name変数を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」、「0123」、「255」、「LAST_UPDATED」:「1494105266」 } ]私はJSONから「シンボル」の項目を引くと、そのバックスプレッドシートに戻したい

  3. 次。この場合、関数は "Ethereum"を取り込み、 "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

関連する問題