0

我有一些JSON數據需要通過我的谷歌應用程序腳本訪問。在同一個腳本中,我可以從同一個API訪問JSON數據的其他部分。爲此,我已經使用過代碼或其變體,因爲JSON數據在每種情況下都顯示略有不同。不過我想現在得到的數據是沒有被應用到谷歌工作表,而是呈現此錯誤:Google Apps「無法將數組轉換爲對象[] []」使用JSON API時出錯

Cannot convert Array to Object[][].

var dataAll = JSON.parse(response.getContentText()); // 
    var dataSet = dataAll; 


    var rows = [], 
     data; 


    for (i = 0; i < Object.keys(dataSet).length; i++) { data = dataSet[Object.keys(dataSet)[i]]; rows.push(data.duration);  } 


    dataRange = sheet.getRange(24, 2, rows.length, 2); 
    dataRange.setValues(rows); 

我想獲得的JSON數據顯示如下:

{ 
    chats: [ 
    { type: "XXX", 
    oneone: "XXX", 
    twotwo: [ ], 
    number: "two", 
    one: "XXXX", 
    two: "XXXX", 
    three: 
{ 
    oneone: "XXX", 
    twotwo: "XXX", 
    three: "XXX", 
    fourfour: "XXX", 
    five: "XXX", 
    six: "XXX", 
    seven: "XXX", 
    eight: "XXX" 
    }, 
    ten: [ 
    { 
    tenten: "XXX", 
    nine: "XXX" 
    } 
    ], 
    test: [ ], 
    tester: "XXX", 
    duration: XXX,  
} 

我需要訪問'duration'的數據,但似乎無法得到這個工作沒有得到錯誤。任何幫助表示讚賞。上面的JSON數據已經被編輯,以私下顯示替代值和變量作爲信息。任何幫助表示讚賞!

回答

0

您正在試圖寫入的陣列看起來像這樣: [1,2,3,4,5]

GAS」 setValues()功能需要並用相等長度數組的數組,子陣列是行和元件在這些子陣列的單元從在那一排從左到右。

如果你想寫行,你需要將值添加到陣列,像這樣的數據:

​​

如果你想將它們全部寫在一行中,但單獨的列您需要:

var rows = [[]]; 
... 
rows[0].push(data.duration); 
+0

謝謝。這是返回3個數據,都表示未定義。有任何想法嗎? – JGA