0

我是 jQuery 新手,只是为了好玩。我有一些代码想尝试修改以满足我的需要,但当前的 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 和列表传递单个项目,不确定它如何与对象一起使用或如何访问对象(我只是调用我为请求创建的 url,$("#user-history").load("/cooltimeline/{{ user.id }}");)。但是,如果我想将 json 数据转换为对象,我应该从哪里开始呢?

如果有帮助,这是我正在尝试做的演示(但通过使用 json 数据)。

ps 我真的在寻找如何完成我正在尝试做的事情的逻辑,也许还有一些我错过的想法,所以我可以用谷歌搜索它们并学习。

4

1 回答 1

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 会更容易

于 2012-07-30T22:18:46.187 回答