我是jQuery的新手,只是为了好玩而玩。我有一些code我想尝试根据我的需要进行修改,但当前的js文件是从谷歌电子表格中获取数据,然后将每个项目作为对象返回。我不使用json将数据从我的服务器传递给jQuery,所以我想知道如何将json转换为对象。
目前的做法是(桌面是他们从谷歌文档获取数据的js程序的名称):
Tabletop.init({
key: timelineConfig.key,
callback: setupTimeline,
wanted: [timelineConfig.sheetName],
postProcess: function(el){
//alert(el['photourl']);
el['timestamp'] = Date.parse(el['date']);
el['display_date'] = el['displaydate'];
el['read_more_url'] = el['readmoreurl'];
el['photo_url'] = el['photourl'];
}
});
我在整个文件中添加了警报,我认为这是获取数据并传递数据的区域。我正在考虑尝试用我的json中的对象替换对象中的项目,看看它是否有任何改变,但我不确定。典型地,我通过json,hashmaps和list传递单个项目,不确定它如何与对象一起工作或如何访问对象(我只是调用我为请求创建的url,$("#user-history").load("/cooltimeline/{{ user.id }}");
)。但是,如果我想将json数据转换为对象,我该从哪里开始?
如果有帮助,这是我正在尝试做的demo(但是让它使用json数据)。
P.S。我真的在寻找如何完成我正在尝试做的事情的逻辑,也许还有一些我想念的想法,所以我可以谷歌和学习。
答案 0 :(得分:0)
使用使用功能JSON.parse(json)
:)或jQuery.parseJSON(json)
var json = '{"a":2}';
var object = JSON.parse(json);
alert(object.a);
您应该看到提示消息:2
我不知道我是否理解你的评论,但也许你想要这样做:
postProcess: function(el){ //here el is JSON string
el = JSON.parse(el); // now el is an object
el.timestamp = Date.parse(el.date);
el.display_date = el.displaydate;
el.read_more_url = el.readmoreurl;
el.photo_url = el.photourl;
return el;
}
顺便说一下。您不需要在知道属性名称上使用括号而不使用标准名称:
el['timestamp'] === el.timestamp
粘贴JSON
会更容易