首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在javascript中解析Json对象

在javascript中解析Json对象
EN

Stack Overflow用户
提问于 2011-12-26 17:05:20
回答 5查看 69.4K关注 0票数 8

你好,所有我有一个像这样的json对象

代码语言:javascript
复制
{"event1":{"title":"My birthday","start":"12\/27\/2011 10:20 ","end":"12\/27\/2011 00:00 "},"event2":{"title":"My birthday again","start":"12\/27\/2011 10:20 ","end":"12\/27\/2011 00:00 "}}

我想像这样解析它

代码语言:javascript
复制
[
            {
                title: 'All Day Event',
                start: new Date(y, m, 1)
            },
            {
                title: 'Long Event',
                start: new Date(y, m, d-5),
                end: new Date(y, m, d-2)
            }]

我该怎么做呢。我写了这段代码,但它的数组长度为0,我的代码是

代码语言:javascript
复制
var response = eval(data);
        $.each(response, function() {
            obj = {};
            $.each(this, function(k, v) {
                if(k=="start")
                {
                    obj[k] = new Date(v);
                }
                if(k=="end")
                {
                    obj[k] = new Date(v);
                }
                else
                {
                    obj[k] = v;
                }
                event_data.push(obj);

            });

        });
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-12-26 17:22:45

代码语言:javascript
复制
data = JSON.parse('{"event1":{"title":"My birthday","start":"12\/27\/2011 10:20 ","end":"12\/27\/2011 00:00 "},"event2":{"title":"My birthday again","start":"12\/27\/2011 10:20 ","end":"12\/27\/2011 00:00 "}}')

arr = []
for(var event in data){
    var dataCopy = data[event]
    for(key in dataCopy){
        if(key == "start" || key == "end"){
            // needs more specific method to manipulate date to your needs
            dataCopy[key] = new Date(dataCopy[key])
        }
    }
    arr.push(dataCopy)
}

alert( JSON.stringify(arr) )
票数 16
EN

Stack Overflow用户

发布于 2011-12-26 17:09:38

看起来你已经在使用jQuery了,所以就用$.parseJSON吧。(http://api.jquery.com/jQuery.parseJSON/)

您必须遍历所创建的对象,才能将日期字符串转换为date对象。

票数 2
EN

Stack Overflow用户

发布于 2011-12-26 17:19:24

代码语言:javascript
复制
var data = {
    "event1": {
        "title": "My birthday",
        "start": "12\/27\/2011 10:20 ",
        "end": "12\/27\/2011 00:00 "
    },
    "event2": {
        "title": "My birthday again",
        "start": "12\/27\/2011 10:20 ",
        "end": "12\/27\/2011 00:00 "
    }
};

var response = eval(data);
var events = [];
$.each(response, function(key, event) {
    var obj = {};
    for (var prop in event) {
        obj[prop] = event[prop];
    }
    obj["start"] = new Date(obj["start"]);
    obj["end"] = new Date(obj["end"]);
    events.push(obj);
});


console.log(events);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8634311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档