2017-05-07 45 views
0

我遇到了將JavaScript數組寫入Google表格行的最後一步的問題。我知道我的setValues()方法需要一個二維數組,但我失去了一些明顯的東西,我不知道是什麼。Google Apps腳本將JSON數組輸出到一行

我正在處理這個JSON響應,我想將rates []數組寫入Google表單中的一行。

{ 
    "base": "CAD", 
    "date": "2017-05-05", 
    "rates": { 
     "AUD": 0.98264, 
     "CNY": 5.0123, 
     "GBP": 0.56122, 
     "HKD": 5.652, 
    } 
} 

最新的谷歌應用腳​​本部分如下:

sheet.getRange(sheet.getLastRow(),1).setValues([rates]); 

這給了錯誤:

Cannot convert Array to Object[][]. (line 52, file "Code")

我再嵌入另一組括號,因爲我認爲這是一個我轉換爲二維數組時發生錯誤:

sheet.getRange(sheet.getLastRow(),1).setValues([[rates]]); 

但是後來我把所有的文章都放到了一個單元格中。所以我轉換到二維數組是錯誤的。

任何人能發現我「在做什麼錯

回答

0

使用您所提供的信息,該代碼創建可以從下面的代碼來創建對象的二維數組:

function converObjectToArray() { 
    var innerArray,k,k2,obj,objRates,outerArray; 

    obj = { 
    "base": "CAD", 
    "date": "2017-05-05", 
    "rates": { 
     "AUD": 0.98264, 
     "CNY": 5.0123, 
     "GBP": 0.56122, 
     "HKD": 5.652, 
    } 
    } 

    objRates = obj.rates; 

    outerArray = []; 

    for (k in obj) { 

    if (k !== 'rates') {continue;} 

    objRates = obj[k]; 
    Logger.log('obj.rates ' + JSON.stringify(obj.rates)) 

    innerArray = [];//reset 

    for (k2 in objRates) { 
     innerArray.push(objRates[k2]); 
    } 

    outerArray.push(innerArray); 
    } 

    Logger.log(outerArray) 
} 
0

您必須創建對象的數組,然後使用陣列中的設定值,像這樣寫入到電子表格:

function addObject(){ 
var obj = { 
    "base": "CAD", 
    "date": "2017-05-05", 
    "rates": { 
     "AUD": 0.98264, 
     "CNY": 5.0123, 
     "GBP": 0.56122, 
     "HKD": 5.652, 
    } 
} 
var inputArray = [] 
var rates = obj.rates 
for (var j in rates){ 
    inputArray.push([j,rates[j]]) 
} 
Logger.log(inputArray) 
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var sheet = ss.getSheetByName('your Sheet Name'); 
sheet.getRange(sheet.getLastRow()+1, 1,inputArray.length,inputArray[0].length).setValues(inputArray) 

} 

此代碼也將進入柯的價值y在表單中。

相關問題