Javascript JSON过帐操作将对象值转换为字符串类型

Javascript JSON过帐操作将对象值转换为字符串类型,javascript,ajax,node.js,Javascript,Ajax,Node.js,我有一个包含日期对象的对象。当我将其发布到NodeJS服务器时,它仍然是一个对象,但时间已转换为字符串。有没有办法避免这种情况?我无法解析整个对象,因为我得到了一个“意外令牌o”错误(我假设它仍然是一个对象) 之前: Object {title: " - fd", start: Tue Feb 11 2014 09:00:00 GMT-0500 (EST), end: Tue Feb 11 2014 10:00:00 GMT-0500 (EST), allDay: false, id: ""…}

我有一个包含日期对象的对象。当我将其发布到NodeJS服务器时,它仍然是一个对象,但时间已转换为字符串。有没有办法避免这种情况?我无法解析整个对象,因为我得到了一个“意外令牌o”错误(我假设它仍然是一个对象)

之前:

Object {title: " - fd", start: Tue Feb 11 2014 09:00:00 GMT-0500 (EST), end: Tue Feb 11 2014 10:00:00 GMT-0500 (EST), allDay: false, id: ""…}
之后:

Object
allDay: "false"
end: "Tue Feb 11 2014 10:00:00 GMT-0500 (EST)"
id: ""
room: "Shower 1"
start: "Tue Feb 11 2014 09:00:00 GMT-0500 (EST)"
title: " - fd"

JSON中不能包含
Date
对象。您可以在服务器上将它们转换为数字并返回到日期:

// Convert Date to number on client side
objToSend.foo.myDate = objToSend.foo.myDate.getTime();

// Convert number to date on server side
objReceived.foo.myDate = new Date(+objReceived.foo.myDate);

这要求您的应用程序知道哪些属性是日期,哪些不是日期。

显示JavaScript对象表示法不支持日期类型之前和之后的值,如您在中看到的。在数据的编组和解编组中需要一点逻辑。如果JSON不支持,我真的不知道如何发布包含日期的对象。。。有什么想法吗?仍然是一个有效的方法。接收者可以将数字转换回日期。另一种方法可以是定义模式(例如,如果您使用mongoose)并从请求主体中标识对象。您如何转换JSON和JSON?我很好奇,因为它看起来像是布尔值
false
正在变成字符串
“false”
。当我这样做时,我得到一个null值,用于转换回最新值。我使用了与您相同的命令,所以
console.log(objReceived.foo.myDate)
打印一个有效的正整数?是的,但是当我执行
新建日期(属性)
时,它会打印
无效日期
。请尝试
新建日期(+属性)
。这将首先将
属性
转换为
数字
。实际上,我使用了parseInt,但我假设它们要么等价,要么做的事情或多或少相同。