一尘不染

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

javascript

我有以下一段JSON:

\/Date(1293034567877)\/

.NET代码的结果:

var obj = DateTime.Now;
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
serializer.Serialize(obj).Dump();

现在,我面临的问题是如何在JavaScript中创建一个Date对象。我所能找到的就是令人难以置信的正则表达式解决方案(许多包含错误)。

很难相信没有优雅的解决方案,因为这都是JavaScrip中的全部,我的意思是JavaScript代码试图读取应该被认为是JavaScript代码的JSON(JavaScript对象表示法),但现在看来,这并不是因为JavaScript无法在这里做好。

我还看到了一些我无法使用的评估解决方案(除了被指出为安全威胁之外)。

真的没有办法优雅地做到这一点吗?


阅读 270

收藏
2020-05-01

共1个答案

一尘不染

没有日期的标准JSON表示形式。您应该执行@jAndy建议的操作,而不要完全序列化a DateTime;只需发送RFC
1123日期字符串ToString("r")或距Unix纪元的秒数​​,或可以在JavaScript中使用的其他内容即可构造一个Date

2020-05-01