2016-08-30 56 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