2017-12-31 167 views
0

내 시트 중 하나에 다음과 같은 REST API를 사용하기 위해 노력하고있어 및 (먼저 여기 timer로!)을 JSON 배열에서 특정 결과를 반환하기 위해 고군분투은는 시트 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

색인 nunber 사용에 문제가 없습니다. 어떤 표기법을 사용하든 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) 
}