javascript - 将 JSON 响应转换为 Google Sheet(Google Apps 脚本)

标签 javascript json google-apps-script

我一直在尝试使用以下代码将 JSON 响应插入 Google Apps 脚本中的 google Sheet,但由于某种原因,我在尝试运行时遇到错误。

请查看屏幕截图和下面的代码。

    function myFunction() {

  var key_67 = 'YYYYYYYYYYYYYYYYYY';
  var ss_67 = SpreadsheetApp.openById(key_67);
  var sheet_67 = ss_67.getActiveSheet();
  sheet_67.getRange('A1:AZ10000').clearContent();
 var url = 'https://creator.zoho.com/api/json/arfater/view/Leads_Report?authtoken=XXXXXXXXXXXXXXXXXXXX&scope=creatorapi&zc_ownername=ipekuet';
 var response = UrlFetchApp.fetch(url);
var json = response.getContentText();
var data = JSON.parse(json);
Logger.log(data);



  var stats=[]; //create empty array to hold data points



  //The following lines push the parsed json into empty stats array

    stats.push(data.Yearly_Sales); //temp
    stats.push(data.Email); //dewPoint
    stats.push(data.Phone); //visibility

  //append the stats array to the active sheet 
  sheet_67.appendRow(stats)

}

enter image description here

最佳答案

所以你基于 postman 应用程序的 JSON 响应是

var zohoipekuetview65 = {"潜在客户":[{"Yearly_Sales":"$ 1,000.00","电子邮件":"test@zoho.com","电话":"123-032-03323","P‌可能”:50,“国家”:“纽约”,“邮政编码”:“1‌​0036”,“街道”:“1515百老汇”,“国家”:“美国”,“ID”:“2198633000000063029”,“城市":‌​“纽约”,“姓名”:“Arfater Rahman”}]};

当我按原样使用该响应时:

function JsonResponse(){
 var json ='var zohoipekuetview65 = {"Leads":[{"Yearly_Sales":"$ 1,000.00","Email":"test@zoho.com","Phone":"123-032-03323","P‌​otentially":50,"Stat‌​e":"NY","ZipCode":"1‌​0036","Street":"1515 Broadway","Country":"USA","ID":"2198633000000063029","City":‌​"New York","Name":"Arfater Rahman"}]} '
 var data = JSON.parse(json);
Logger.log(data); 
}

我得到了和你一样的错误:

SyntaxError: Unexpected token: v

这让我相信您对 API 的回复有这个术语 var zohoipekuetview65 (不太确定为什么?可能是一个错误)

下面的代码分割响应字符串以仅提供 JSON 响应

function trialParse(){
var json ='var zohoipekuetview65 = {"Leads":[{"Yearly_Sales":"$ 1,000.00","Email":"test@zoho.com","Phone":"123-032-03323","P‌​otentially":50,"Stat‌​e":"NY","ZipCode":"1‌​0036","Street":"1515 Broadway","Country":"USA","ID":"2198633000000063029","City":‌​"New York","Name":"Arfater Rahman"}]} '
Logger.log(JsonResponse(json))
}
function JsonResponse(response){
  Logger.log(response)
  var json = response.split("=")[1]
  var data = JSON.parse(json);
  Logger.log(data);
  return data  
}

只需使用 var data = JsonResponse(json) 在代码中调用上述函数

最后注意:正如 Jordan Rhea 所提到的,您可以使用 Logger.log(json) 来输出对日志的响应。要查看日志,请转至“ View ”>“日志”,它将显示从 Api 收到的响应。

关于javascript - 将 JSON 响应转换为 Google Sheet(Google Apps 脚本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43966753/

相关文章:

python - 从 json 文件中提取条件值

python - 使用 Graph API 在 Facebook 中定位帖子的地理定位

string - Google 脚本 - 从网站获取特定数据

google-apps-script - 在 Google Drive Script 中将文件添加到文件夹

javascript在旋转的元素中找到相同的位置

javascript - 如何使用 'keyup' 事件将小写字符更改为大写字符?

javascript - 离线的json文件可以被chart.js读取,但是在线的json无法读取

javascript - 删除电子表格中今天日期应用程序脚本之前的日期

javascript - Boolean(x) 和 !!x 之间的区别

javascript - 双 for 循环中数组的奇怪行为 - JavaScript