你好,所有我有一个像这样的json对象
{"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 "}}我想像这样解析它
[
{
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,我的代码是
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);
});
});发布于 2011-12-26 17:22:45
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) )发布于 2011-12-26 17:09:38
看起来你已经在使用jQuery了,所以就用$.parseJSON吧。(http://api.jquery.com/jQuery.parseJSON/)
您必须遍历所创建的对象,才能将日期字符串转换为date对象。
发布于 2011-12-26 17:19:24
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);https://stackoverflow.com/questions/8634311
复制相似问题