强制Json Serializer生成特定的日期时间格式(yyyy-mm-ddThh:mm:ss.msmsmsZ)

时间:2010-03-12 19:22:18

标签: c# json datetime jsonserializer

MyClass theSession = new MyClass() {
    accountId = 12345,
    timeStamp = DateTime.Now,
    userType = "theUserType"
};

System.Web.Script.Serialization.JavaScriptSerializer Json = new System.Web.Script.Serialization.JavaScriptSerializer();
Response.Write(Json.Serialize(theSession));

产地:

{"accountId":12345,"timeStamp":"\/Date(1268420981135)\/","userType":"theUserType"}

如何将日期显示为:

"timestamp":"2010-02-15T23:53:35.963Z"

3 个答案:

答案 0 :(得分:2)

您需要制作一个JavaScriptConverter课程并使用RegisterConverters方法进行注册。

答案 1 :(得分:1)

即使您实现了JavaScriptConverter,也必须将字符串包装在对象中。幸运的是,这里有一个黑客攻击:

http://blog.calyptus.eu/seb/2011/12/custom-datetime-json-serialization/

答案 2 :(得分:0)

我建议你(以及其他所有有这个问题的人)只需切换到ServiceStack.Text库 - 它就像30秒集成,你将解决许多其他问题。看看这个贴出来的问题&我回答:

ASP.NET MVC Json DateTime Serialization conversion to UTC