Javascript 如何将一个JSON对象转换为另一个JSON对象
我正在尝试使用下面的插件来呈现sharepoint事件列表中的一些事件数据。 在该站点中,我使用了以下内嵌Json示例:Javascript 如何将一个JSON对象转换为另一个JSON对象,javascript,jquery,json,Javascript,Jquery,Json,我正在尝试使用下面的插件来呈现sharepoint事件列表中的一些事件数据。 在该站点中,我使用了以下内嵌Json示例: <div id="eventCalendarInline"></div> <script> $(document).ready(function () { var eventsInline = [{ "date": "1414490400000", "type": "
<div id="eventCalendarInline"></div>
<script>
$(document).ready(function () {
var eventsInline = [{ "date": "1414490400000", "type": "meeting", "title": "Project A meeting", "description": "Lorem Ipsum dolor set", "url": "http://www.event1.com/" },
{ "date": "1414490400000", "type": "demo", "title": "Project B demo", "description": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", "url": "http://www.event2.com/" },
{ "date": "1414490400000", "type": "meeting", "title": "Project A meeting", "description": "Lorem Ipsum dolor set", "url": "http://www.event1.com/" },
{ "date": "1338885237000", "type": "demo", "title": "Project B demo", "description": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", "url": "http://www.event2.com/" },
{ "date": "1414490400000", "type": "meeting", "title": "Project A meeting", "description": "Lorem Ipsum dolor set", "url": "http://www.event1.com/" },
{ "date": "1414490400000", "type": "demo", "title": "Project B demo", "description": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", "url": "http://www.event2.com/" },
{ "date": "1344515447000", "type": "meeting", "title": "Project A meeting", "description": "Lorem Ipsum dolor set", "url": "http://www.event1.com/" },
{ "date": "1345033847000", "type": "demo", "title": "Project B demo", "description": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", "url": "http://www.event2.com/" },
{ "date": "1347712247000", "type": "meeting", "title": "Project A meeting", "description": "Lorem Ipsum dolor set", "url": "http://www.event1.com/" },
{ "date": "1348230647000", "type": "demo", "title": "Project B demo", "description": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", "url": "http://www.event2.com/" },
{ "date": "1349094647000", "type": "meeting", "title": "Project A meeting", "description": "Lorem Ipsum dolor set", "url": "http://www.event1.com/" },
{ "date": "1351600247", "type": "demo", "title": "Project B demo", "description": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", "url": "http://www.event2.com/" }];
$("#eventCalendarInline").eventCalendar({
jsonData: eventsInline,
openEventInNewWindow: true,
showDescription: true,
eventsScrollable: true
});
});
</script>
没有自动转换这两个对象的方法。您需要自己编写代码: 假设您知道如何在变量
e
中的result.d.results
中迭代数组,您可以创建如下事件:
var event = {
type: e.Category.toLowercase(),
title: e.Title,
description: e.Description
};
不过,从2014-10-21T10:00:00Z
到数字的转换更为复杂。输入格式看起来有点像ISO-8601 plus时区(其中Z==UTC)。对于这些问题,Date.parse()
date: Date.parse(e.EventDate),
为什么要使用eval(JSON.parse(data.body))
JSON.parse(data.body)
应该足够了;使用eval()。你可以使用格式化服务来美化它。我只是在某个地方找到了代码,不知道他们为什么要放eval。@Aarondigula刚刚粘贴了sharepointTryconsole.log(data.body)返回的json
在浏览器的JavaScript控制台中查看服务发送给您的内容。也许他们真的把JSON包装了两次或者其他什么。
var event = {
type: e.Category.toLowercase(),
title: e.Title,
description: e.Description
};
date: Date.parse(e.EventDate),