将日期时间转换为JSON数据的难度

时间:2013-10-15 09:25:24

标签: c# asp.net-mvc json jqgrid

我正在尝试将list<T>转换为JSON数据,然后绑定到Jqgrid。

问题是列表集合包含一个列为DateTime。

当我看到生成的JSON响应时,日期时间未正确序列化。它是这样的:

 /Date(1267408935000)/

如果列表集合包含日期时间列,则如何正确地将列表集合转换为JSON数据。

请帮助..

3 个答案:

答案 0 :(得分:5)

如果您使用formatter: "date"作为colModel中相应的列定义,则jqGrid将自动进行相应的转换。问题可能只有在你使用一些非常旧版本的jqGrid时(参见documentation,它描述了从jqGrid 3.8.2开始引入了相应的支持)。

答案 1 :(得分:2)

当你说它“没有正确序列化”时 - 这对我来说没问题。这是JSON日期的一种格式,来自Javascript Date构造函数,以“自Unix纪元以来的毫秒”作为参数。所以你给出的价值是2010年3月1日02:02:15 UTC。

我希望将反序列化这些数据的Javascript完全正常 - 但当然不一定是这样......如果它确实给你造成了问题,请阅读Scott Hanselman's blog post about JSON date/time formats - 特别是,它解释了如何将JSON格式化程序替换为Json.NET,默认情况下使用ISO-8601格式。

答案 2 :(得分:0)

使用字符串属性创建类,而不是 DateTime

public class MyJsonModel
{
   public string DateTimeString { get;set; }
}

var model = new MyJsonModel();
model.DateTimeString = DateTime.Now.ToString("MM-dd-yyyy"); //Any format you like