我可以将json输入转换为jquery中的对象列表吗?

时间:2012-07-30 22:13:58

标签: javascript jquery

我是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。我真的在寻找如何完成我正在尝试做的事情的逻辑,也许还有一些我想念的想法,所以我可以谷歌和学习。

1 个答案:

答案 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

会更容易