用javascript格式化有效.Net格式的日期

时间:2012-05-23 17:15:44

标签: javascript asp.net json datetime serialization

我在客户端有一个JSON对象,我希望在服务器端回来 为此,我有一个隐藏的,我把我的对象的字符串版本。

$("#<%=hidden.ClientID%>").val(JSON.stringify(obj));

然后,在服务器端,我尝试使用JavaScriptSerializer反序列化它。

我的问题:字符串化对象包含日期,我无法使用de JavaScriptSerializer解析它 我做了什么:修改日期格式以使其适合.Net格式:

function FormatDate(date) {
    if (typeof (date.getTime) != "undefined") {
        return '\\/Date(' + date.getTime() + ')\\/'
    }

    return date;
}

这似乎给出了一个好的格式,但是,当我在具有格式良好的日期的对象上使用JSON.stringify时,它会添加一个额外的反斜杠,因此JavaScriptSerializer仍然无法获得它。

关于如何在隐藏的有效格式中获取它的任何想法?

3 个答案:

答案 0 :(得分:1)

我有同样的问题和

'\/Date(' + date.getTime() + ')\/';

适合我。 你只需要一个双反斜杠而不是一个反斜杠。

答案 1 :(得分:1)

我在序列化后使用下面的代码来修复数据。

var data = JSON.stringify(object);
data = data.replace(/\\\\/g, "\\");

答案 2 :(得分:1)

旧问题,但万一有人到我这里寻找解决方案,发现这有效: https://stackoverflow.com/a/21865563/364568

function customJSONstringify(obj) {
    return JSON.stringify(obj).replace(/\/Date/g, "\\\/Date").replace(/\)\//g, "\)\\\/")
}