使用json解析谷歌日历数据

时间:2013-07-06 16:12:40

标签: javascript jquery google-calendar-api

这一直困扰着我一段时间。我正在尝试使用getJSON从我的Google日历Feed中获取事件标题,并最终使用JSONparse回调进行解析。不幸的是我无法让它发挥作用。我到处都遇到一堆解决方案,但实际上并不是我想要的。如果我使用google js api但我尝试使用纯jquery,我可以使它工作。

这就是我所拥有的

var eventName = '';
var gclaData = 'https://www.google.com/calendar/feeds/********%40gmail.com/public/full?orderby=starttime&sortorder=ascending&max-results=3&futureevents=true&alt=json';

$.getJSON(gclaData,function(data){
        for(var i=0; i<=data.length; i++){
            eventName += JSON.parse(data[i].entry.title.$t)+"<br>";
        }
        $('#outputTitle').append(eventName);
    });

});
</script>
<div id="outputTitle"></div>

这是我的fiddle

1 个答案:

答案 0 :(得分:2)

我不明白你在做什么,首先是for是错误的,因为数据对象没有任何长度,feed字段是一个数组,所以你应该这样做:

data.feed.entry[i].title.$t

第二个$ t值是一个字符串,所以你不能将它传递给JSON.Parse,或者你可以,但它没有价值。

也许您正在寻找的最终代码:

var eventName = '';
var gclaData = 'https://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){
  for(var i = 0; i < data.feed.entry.length; i++){
     eventName += data.feed.entry[i].title.$t+"</br>";
  }
  $('#outputTitle').append(eventName);
});