如何解析JSON以在JavaScript中接收Date对象?

如何解析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解决方案(除了被指出为安全威胁)。

难道没有办法优雅地做到这一点吗?

holdtom
浏览 597回答 3
3回答

摇曳的蔷薇

日期没有标准的JSON表示。你应该做@jAndy建议的事情而不是序列化一个人DateTime; 只需发送一个RFC 1123日期字符串ToString("r")或一个从Unix开始的纪元数字,或者您可以在JavaScript中使用的其他内容来构建一个Date。

尚方宝剑之说

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 。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript