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

时间:2012-06-10 12:17:23

标签: javascript datetime json

我正在使用带有replacer(第二个参数)的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;
        });

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

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

这是替换器功能应该如何表现,还是这是IE的一个奇怪功能(我使用的是IE9)?我怎么能解决这个问题?

1 个答案:

答案 0 :(得分:4)

尝试

Date.prototype.toJSON = function() {
     return "Date(" + this.getTime() + ")";
};

没有替换者。