JavaScript Json.stringify 替换器将值转换为字符串

Pre*_*eli 1 javascript datetime json

我使用带有替换器(第二个参数)的 javascript JSON.stringify 函数以某种方式格式化日期值:

var s = JSON.stringify(data, function (key, value) {
            if (key === "") return value;
            if (jQuery.type(value) === "date") return "Date(" + value.getTime() + ")";
            return value;
        });
Run Code Online (Sandbox Code Playgroud)

我的对象“数据”中有有效的日期时间值。但是,当使用此值执行替换函数时,日期时间值会自动转换为字符串,因此 jQuery.type(value) = "string" 而不是 "date"。

我可以在调用 stringify 之前简单地替换 value-object 中的所有日期时间值,但我不想修改原始数据。

这是替换函数的行为方式还是 IE 的一个奇怪功能(我使用的是 IE9)?我怎么能解决这个问题?

Esa*_*ija 5

尝试

Date.prototype.toJSON = function() {
     return "Date(" + this.getTime() + ")";
};
Run Code Online (Sandbox Code Playgroud)

没有替代品。