在谷歌脚本中循环JSON响应

时间:2017-07-10 20:36:58

标签: google-apps-script

我们正在尝试研究如何循环JSON响应。

我们设法调用第三方数据库的API并拉出第一行(标题),但需要遍历所有行,然后将它们复制到Google工作表。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

没有太多关于您正在接收的JSON中的信息或者您将如何处理它的信息,所以这是我的一般答案:

收到完整的JSON数据后,可以使用JSON.parse( jsonString )将其转换为对象,其中jsonString是您从API收到的数据。更多关于here

如果行值存储在数组中,则可以使用forEach()方法轻松遍历它们。有关here的更多信息。下面是示例JSON数据和解析它的函数。

示例数据

{
  "name": "Example Data",
  "rows": [
    {
      "string": "I'm a string",
      "number": 14
    },
    {
      "string": "Chicago",
      "number": 36
    }
  ]
}

示例解析函数

function handleJsonResponse(data) {
  //Parse response and get sheet
  var response = JSON.parse(data);
  var spreadsheet= SpreadsheetApp.getActive().getSheetByName(response.name);
  if (spreadsheet === null) {
    //Error here
  }

  //Loop through data and add it to spreadsheet
  response.rows.forEach(function( row, index ) { 
    //This function will be executed for every row in the rows array

    //Set the index of the row to the first column in the sheet
    //2 is added to the index for the row number because index starts at 0 and we want to start adding data at row 2
    spreadsheet.getRange(index + 2, 1).setValue(index);

    //Set the value of string to the second column
    spreadsheet.getRange(index + 2, 2).setValue(row.string);

    //Set the value of number to the third column
    spreadsheet.getRange(index + 2, 3).setValue(row.number);

  });
}

如果您有任何问题,请随时提出。