2017-12-31 195 views
0

私は(最初にここタイマ!!)私のシートの1つに、以下のREST APIを使用しようとしている、とJSON配列から特定の結果を返すのに苦労していますGoogleスプレッドシートAPIスクリプト

は、ここで私が持っているものですこれまでのところ....

function Bittrex_API() { 

    // Call the Bittrex API for market rates 
    var response = UrlFetchApp.fetch(
     "https://bittrex.com/api/v1.1/public/getmarketsummaries"); 

    // Parse the JSON reply 
    var json = response.getContentText(); 
    var data = JSON.parse(json); 

    Logger.log(data); 
} 

これはログに完全な配列を返しますが、配列内の特定の結果からすべての情報を取得するにはどうすればよいですか?

私は次のようにインデックス位置「0」を呼び出すことにより、最初のセクションから、具体的な結果を返すことができます。

function Bittrex_API() { 

    // Call the Bittrex API for market rates 
    var response = UrlFetchApp.fetch(
     "https://bittrex.com/api/v1.1/public/getmarketsummaries"); 

    // Parse the JSON reply 
    var json = response.getContentText(); 
    var data = JSON.parse(json); 

    Logger.log(data["result"][0]); 
} 

しかし、どのように私は、インデックス番号を使用せずに、配列の異なる部分を指定してください??

つまり、MarketName=BTC-RCNに関するすべての情報を返したいとします。

答えて

1

インデックスナンバーの使用に問題はありません。どんな記法を使っても、BTC-RCNを見つける必要があります。インデックス番号をループして検索することができます。これで見つけられ、結果はSheet1に返されます:

function Bittrex_API() { 

    // Call the Bittrex API for market rates 
    var response = UrlFetchApp.fetch(
    "https://bittrex.com/api/v1.1/public/getmarketsummaries"); 

    // Parse the JSON reply 
    var json = response.getContentText(); 
    var data = JSON.parse(json); 
    var lgt=data.result.length 
    for(i=0;i<lgt;i++){ 
    var test=data["result"][i]["MarketName"] 
     if(test=="BTC-RCN"){ 
     var num=i; 
     } 
    } 
var MarketName=data["result"][num]["MarketName"] 
var High=data["result"][num]["High"] 
var Low=data["result"][num]["Low"] 
var Volume=data["result"][num]["Volume"] 
var Last=data["result"][num]["Last"] 
var BaseVolume=data["result"][num]["BaseVolume"] 
var TimeStamp=data["result"][num]["TimeStamp"] 
var Bid=data["result"][num]["Bid"] 
var Ask=data["result"][num]["Ask"] 
var OpenBuyOrders=data["result"][num]["OpenBuyOrders"] 
var OpenSellOrders=data["result"][num]["OpenSellOrders"] 
var PrevDay=data["result"][num]["PrevDay"] 
var Created=data["result"][num]["Created"] 

var ss=SpreadsheetApp.getActiveSpreadsheet() 
var s=ss.getSheetByName("Sheet1") 
s.getRange("A1").setValue("MarketName") 
s.getRange("B1").setValue(MarketName) 
s.getRange("A2").setValue("High") 
s.getRange("B2").setValue(High) 
s.getRange("A3").setValue("Low") 
s.getRange("B3").setValue(Low) 
s.getRange("A4").setValue("Volume") 
s.getRange("B4").setValue(Volume) 
s.getRange("A5").setValue("Last") 
s.getRange("B5").setValue(Last) 
s.getRange("A6").setValue("BaseVolume") 
s.getRange("B6").setValue(BaseVolume) 
s.getRange("A7").setValue("TimeStamp") 
s.getRange("B7").setValue(TimeStamp) 
s.getRange("A8").setValue("Bid") 
s.getRange("B8").setValue(Bid) 
s.getRange("A9").setValue("Ask") 
s.getRange("B9").setValue(Ask) 
s.getRange("A10").setValue("OpenBuyOrders") 
s.getRange("B10").setValue(OpenBuyOrders) 
s.getRange("A11").setValue("OpenSellOrders") 
s.getRange("B11").setValue(OpenSellOrders) 
s.getRange("A12").setValue("PrevDay") 
s.getRange("B12").setValue(PrevDay) 
s.getRange("A13").setValue("Created") 
s.getRange("B13").setValue(Created) 
} 
関連する問題