如何使用JSON.NET通过ASP.NET MVC传递JSON日期值?

可能重复:
格式化Microsoft JSON日期?

ASP.NET函数Json()格式化并返回一个日期

{"d":"/Date(1240718400000)/"}

必须在客户端处理,这是有问题的。 对于来回发送日期值的方法,您有什么建议?


这发现在Stack Overflow的另一篇文章中:

var date = new Date(parseInt(jsonDate.substr(6))); 

substr函数取出“/ Date(”部分,parseInt函数获取整数并在最后忽略“)/”。 生成的数字被传入Date构造函数。


如果你不绑定到MS JSON序列化程序,你可以使用Json.NET。 它带有一个IsoDateTimeConverter来处理序列化日期问题。 这会将日期序列化为ISO 8601格式的字符串。

例如,在我们的项目中,序列化myObject是通过以下代码处理的。

JsonNetResult jsonNetResult = new JsonNetResult();
jsonNetResult.Formatting = Formatting.Indented;
jsonNetResult.SerializerSettings.Converters.Add(new IsoDateTimeConverter());
jsonNetResult.Data = myObject;

如果您决定采用Json.NET,那么您还需要获取JsonNetResult,因为它返回可以在ASP.NET MVC应用程序中使用的ActionResult。 这很容易使用。

有关更多信息,请参阅:使用Json.NET的良好(日期)时间


它可能很丑,但它起作用:

 var epoch = (new RegExp('/Date((-?[0-9]+))/')).exec(d);
 $("#field").text((new Date(parseInt(epoch[1]))).toDateString());

可能没有必要匹配整个字符串,只是( - ?[0-9] +)就足够了......

链接地址: http://www.djcxy.com/p/8149.html

上一篇: How to pass a JSON date value via ASP.NET MVC using JSON.NET?

下一篇: Converting json results to a date