Google Apps“无法使用JSON API将数组转换为对象[] []”错误

时间:2016-03-14 10:40:51

标签: json google-apps-script google-sheets google-spreadsheet-api

我有一些JSON数据需要通过我的谷歌应用脚​​本访问。在同一个脚本上,我可以从同一个API访问JSON数据的其他部分。为此我使用了之前的代码或它的变体,因为在每种情况下JSON数据的显示略有不同。但是,我现在尝试获取的数据未应用于Google表格而是呈现此错误:

  

无法将数组转换为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数据已经过编辑,可以将替代值和变量显示为私有信息。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

您正在尝试编写一个如下所示的数组: [1,2,3,4,5]

GAS&#39; setValues()函数需要和数组的数组长度相等,子数组是行,子数组中的元素是该行中从左到右的单元格。

如果要在行中写入数据,则需要将值添加到数组中,如下所示:

rows.push([data.duration])

如果你想将它们全部写在一行但是需要单独的列:

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