2016-08-30 43 views
0

循环我从谷歌表API调用以下的输出:通过谷歌表JSON

{ 
"spreadsheetId": "xxxxxxxxxxxxxxx", 
"valueRanges": [ 
{ 
    "range": "Groups!A2:Z63", 
    "majorDimension": "ROWS", 
    "values": [ 
    [ 
     "Student", 
     "Bonfire", 
     "Megan’s Home. Please contact Small Group Leader for directions.", 
     "First Last, First Last", 
     "13-18", 
     "Coed", 
     "Single", 
     "September 7, 2016. Meets every Wednesday at 6:30 p.m.", 
     "This is a group", 
     "student", 
     "2109793" 
    ] 
    ] 
    ] 
} 

有在此列表中,我试图通过以显示遍历其它50值。我试过的一些变化for循环,如...

$.getJSON("https://sheets.googleapis.com/v4/spreadsheets/xxxx/values:batchGet?ranges=Groups!2%3A63&key=xxxx", function(response){ 

    for (i = 0; i < response.valueRanges.length; i++) { 
     var row = groups.values[i]; 
     var output = '<div>'+ row[0] +'</div>' 
    } 
} 

我不熟悉通过数组循环,所以我不知道我要去哪里错了。有任何想法吗?

回答

2

不确定输出结果到底是什么,但以下内容会将每行的第一个和第二个元素保存到输出变量中。与给定对象的输出(I加入缺少“}”):

<div>Student, Bonfire</div> 

你需要通过两个“valueRanges”和内“价值”阵列的外部阵列循环。

for (var i = 0; i < response.valueRanges.length; i++) { 
    var values = response.valueRanges[i].values; 

    for (var j = 0; j < values.length; j++) { 
     var row = values[j]; 
     var output = '<div>' + row[0] + ', ' + row[1] + '</div>'; 
     console.log(output); 
    } 
} 
+0

也许'var output ='

' + textToHtml(row[0]) + ', ' + textToHtml(row[1]) + '
';'以避免第三方文本与HTML混淆。如果'textToHtml'分别用'&'和'<'替代'&'和'<',那么您将不会获得XSS。 –

+0

谢谢!这正是我需要的。 – taylorcammack

+0

不客气。很高兴我能帮上忙! – Surberus