如何解析JSON以在JavaScript中接收Date对象?我有一段JSON:\/Date(1293034567877)\/这是.NET代码的结果:var obj = DateTime.Now;var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();serializer.Serialize(obj).Dump();现在我面临的问题是如何在JavaScript中创建一个Date对象。我所能找到的是令人难以置信的正则表达式解决方案(许多包含错误)。很难相信没有优雅的解决方案,因为这完全在JavaScrip中,我的意思是JavaScript代码试图读取JSON(JavaScript Object Notation),这应该是一个JavaScript代码,而且此时它证明它不是因为JavaScript不能在这做得很好我也看到了一些我无法工作的eval解决方案(除了被指出为安全威胁)。难道没有办法优雅地做到这一点吗?
3 回答
摇曳的蔷薇
TA贡献1793条经验 获得超6个赞
日期没有标准的JSON表示。你应该做@jAndy建议的事情而不是序列化一个人DateTime
; 只需发送一个RFC 1123日期字符串ToString("r")
或一个从Unix开始的纪元数字,或者您可以在JavaScript中使用的其他内容来构建一个Date
。
尚方宝剑之说
TA贡献1788条经验 获得超4个赞
var date = new Date(parseInt(jsonDate.substr(6)));
正如他所说:substr函数取出“/ Date(”部分,而parseInt函数获取整数并忽略最后的“)/”。生成的数字将传递到Date构造函数中。
另一个选择是在ASP端简单地格式化您的信息,以便JavaScript可以轻松读取它。考虑为您的日期做这件事:
DateTime.Now()
哪个应该返回这样的格式:
7/22/2008 12:11:04 PM
如果你将它传递给这样的JavaScript Date
构造函数:
var date = new Date('7/22/2008 12:11:04 PM');
变量date
现在保存此值:
Tue Jul 22 2008 12:11:04 GMT-0700 (Pacific Daylight Time)
当然,您可以将此DateTime
对象格式化为JS Date
构造函数接受的任何类型的字符串/ int 。
添加回答
举报
0/150
提交
取消