javascript - 如何解析 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 对象表示法),它应该是 JavaScript 代码,而现在事实证明它不是因为 JavaScript 在这方面做得不好。

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

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

没有真正答案的类似问题:
How to parse ASP.NET JSON Date format with GWT

最佳答案

JSON.parse函数接受可选的 DateTime reviver 函数。你可以使用这样的函数:

dateTimeReviver = function (key, value) {
    var a;
    if (typeof value === 'string') {
        a = /\/Date\((\d*)\)\//.exec(value);
        if (a) {
            return new Date(+a[1]);
        }
    }
    return value;
}

然后调用

JSON.parse(somejsonstring, dateTimeReviver);

你的日期会正确的。

https://stackoverflow.com/questions/4511705/

相关文章:

javascript - 将数据发布到 JsonP

javascript - JavaScript 可以连接 MySQL 吗?

json - 带 json 参数的 curl GET 请求

json - JSON 值是否可以包含多行字符串

python - 检查键是否存在并使用 Python 迭代 JSON 数组

javascript - 如何在 Javascript/HTML5 中解析 Excel (XLS)

python - 如何将 XML 字符串转换为字典?

ruby-on-rails - 使用 Rails 和 HTTParty 将 JSON 发布到 API

json - 如何从 http.Get 获取 JSON 响应

javascript - JSON 和 JavaScript 对象有什么区别?