从javascript返回json对象
我正在使用fullcalendar和google calendar api,从中我获取我的事件,并希望将它们作为json传递到我的fullcalendar,因为fullcalendar事件接受它作为数据源,并自动将它们呈现到日历中 我有我的html文件,其中包括许多资源和创建日历的jQuery脚本:从javascript返回json对象,javascript,jquery,json,fullcalendar,Javascript,Jquery,Json,Fullcalendar,我正在使用fullcalendar和google calendar api,从中我获取我的事件,并希望将它们作为json传递到我的fullcalendar,因为fullcalendar事件接受它作为数据源,并自动将它们呈现到日历中 我有我的html文件,其中包括许多资源和创建日历的jQuery脚本: <html> <head> <link rel='stylesheet' href='fullcalendar/fullcalendar.css
<html>
<head>
<link rel='stylesheet' href='fullcalendar/fullcalendar.css' />
<script src='fullcalendar/lib/jquery.min.js'></script>
<script src='fullcalendar/lib/moment.min.js'></script>
<script src='fullcalendar/fullcalendar.js'></script>
<script type='text/javascript' src='fullcalendar/gcal.js'></script>
<script src='fullcalendar/lang/da.js'></script>
<script type='text/javascript'>
$(document).ready(function() {
$('#calendar').fullCalendar({
defaultView: 'agendaWeek',
weekends: false,
lang: 'da',
header: false,
allDaySlot: false,
allDayText: '',
height: 695,
minTime: '06:00:00',
maxTime: '20:00:00',
events: 'calendarData.js'
});
});
</script>
</head>
<body>
<div id="calendar"></div>
</body>
</html>
当我字符串化并警告对象时,它看起来如下所示:
[{"id":"1","title":"Test 1","start":"2016-05-26","end":"2016-05-26T16:30:00","allDay":false},{"id":"2","title":"Test 2","start":"2016-05-26","end":"2016-05-26T17:00:00","allDay":false},{"id":"3","title":"Test 3","start":"2016-05-27T08:00:00","end":"","allDay":false}]
var myObject = JSON.stringify(json);
alert(myObject);
{"json":[{"id":1,"title":"ghhgfgh","start":"2016-05-26T14:30:00+02:00","end":"2016-05-26T15:30:00+02:00"}]}
var Jobj = JSON.parse(your_string_data);
要在JS/JSON对象之间交互,必须使用:
JSON.stringify()
JSON.parse()
参考文献包括和
例如:JS>JSON>JS
var x = {
y: 'hello',
z: 1
};
console.log(JSON.parse(JSON.stringify(x)));
将其转换为JSON对象,如下所示:
[{"id":"1","title":"Test 1","start":"2016-05-26","end":"2016-05-26T16:30:00","allDay":false},{"id":"2","title":"Test 2","start":"2016-05-26","end":"2016-05-26T17:00:00","allDay":false},{"id":"3","title":"Test 3","start":"2016-05-27T08:00:00","end":"","allDay":false}]
var myObject = JSON.stringify(json);
alert(myObject);
{"json":[{"id":1,"title":"ghhgfgh","start":"2016-05-26T14:30:00+02:00","end":"2016-05-26T15:30:00+02:00"}]}
var Jobj = JSON.parse(your_string_data);
你的问题是:
$(document).ready(function () {
$('#calendar').fullCalendar({
defaultView: 'agendaWeek',
weekends: false,
lang: 'da',
header: false,
allDaySlot: false,
allDayText: '',
height: 695,
minTime: '06:00:00',
maxTime: '20:00:00',
events: 'calendarData.js'
});
});
“事件”不能将javascript文件作为输入或直接json字符串。你可以给它一个,一个或一个
我猜您打算用listUpcomingEvents()函数的结果来填充“事件”
您可以这样做(只需确保在HTML文件中添加calendarData.js作为脚本src):
那就是var Jobj=JSON.parse(JSON);返回Jobj?还添加了一些关于json元素的内容,就像现在看起来的一样。您可以随时返回对象。谢谢,是的,就是这样。唯一的问题是,当我将身份验证添加到函数中时,它似乎在某个地方发生了故障。例如,函数getData(){var json=[];json.push('some hardcoded data');return json;}可以很好地处理上述函数调用。但是,如果我将calendarData.js添加到html文件中脚本中的函数中,则不会向数组中添加任何数据。我确信它可以工作,因为它在没有jQuery的情况下运行并在另一个文件中获取数据。但这不是一个直接的问题。