2017-05-14 123 views
1

我一直在试图找出将JSON响应插入Google Apps脚本的Google表格中,但由于某些原因,我在尝试运行时出现错误。将JSON响应转换为Google表格(Google Apps脚本)

请看截图和下面的代码。

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

+3

当你将Logger.log(json)放入JSON.parse()之前会发生什么? –

+0

鲁本 - 感谢您的回复..我尝试了您的建议,但得到相同的错误..这是我尝试使用 'var response = UrlFetchApp.fetch(url); var json = response.getContentText(); Logger.log(json);var data = JSON.parse(json);' –

+0

错误:** SyntaxError:意外的标记:v(第11行,文件“ConvertoCSVFromJSON”)** –

回答

0

因此,基于邮差应用你的JSON响应

var zohoipekuetview65 = {"Leads":[{"Yearly_Sales":"$ 1,000.00","Email":"[email protected]","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"}]};

当我使用响应,是:

function JsonResponse(){ 
var json ='var zohoipekuetview65 = {"Leads":[{"Yearly_Sales":"$ 1,000.00","Email":"[email protected]","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(不确定至于为什么?也许是一个bug)

下面的代码拆分响应字符串给你JSON响应唯一

function trialParse(){ 
var json ='var zohoipekuetview65 = {"Leads":[{"Yearly_Sales":"$ 1,000.00","Email":"[email protected]","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)

最后请注意只需拨打您的代码上面的功能:由于乔丹提到瑞亚你可以使用Logger.log(json)来输出你的日志的响应。要查看您的日志goto Views> Logs,它会显示您从Api收到的回复。

相关问题