难以解析谷歌日历json提要中的数据



我正在尝试从我的谷歌日历中打印事件名称、事件时间和日历链接。似乎不知道我做错了什么

首先,感谢社会各界在这方面给了我一些坚实的指导。我得到了正确的事件名称。但事件开始时间和链接显示为未定义。

我的jquery和html看起来像这个

    var event = '';
var gclaData = 'http://www.google.com/calendar/feeds/somugus%40gmail.com/public/full?orderby=starttime&sortorder=ascending&max-results=3&futureevents=true&alt=json';
$.getJSON(gclaData,function(data){
    $.each(data.feed.entry, function(i){
     event += '<div class="eventHolder">'; 
     event += '<div class="eventTime">'+ data.feed.entry[i].gd$when.startTime+"</div>";
     event += '<div class="eventName">'+ data.feed.entry[i].title.$t + "</div>";
     event += '<div class="eLink">'+ data.feed.entry[i].link.href + "</div>";
     event += '</div>';
  });
  $('#output').html(event);
});

这是我的小提琴http://jsfiddle.net/sghoush1/HEZaK/12/

你需要做一些类似的事情

$.getJSON(gclaData,function(data){
    $.each(data.feed.entry, function(i, entry){
        event += '<div class="eventHolder">'; 
        event += '<div class="eventTime">'+ entry.gd$when[0].startTime+"</div>";
        event += '<div class="eventName">'+ entry.title.$t + "</div>";
        event += '<div class="eLink">'+ entry.link[0].href + "</div>";
        event += '</div>';
    });
    $('#output').html(event);
});

少指针

  1. .each()将对对象的引用作为回调的第二个参数,因此不需要使用索引来获取属性
  2. gd$when属性是一个数组,因此您可能需要访问第一个元素
  3. link性质相同

演示:Fiddle

最新更新