2013-10-15 44 views
1

我试图将list<T>转换为JSON数据,然后绑定到Jqgrid。将日期时间转换为JSON数据的难度

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

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

/Date(1267408935000)/ 

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

请帮助..

+0

你想如何格式化他的json日期? –

+0

您使用的是哪个版本的jqGrid?如果使用'formatter:“data”',那么jqGrid在许多最新版本中将自动进行相应的转换。 – Oleg

+0

@ Oleg.i使用最新版本的JqGrid。 –

回答

5

如果您在使用colModelformatter: "date"相应的列定义的jqGrid然后会自动做出相应的转换。这个问题可能只有当你使用一些非常旧的jqGrid版本(参见documentation,它描述了相应的支持是从jqGrid 3.8.2开始引入的)。

+0

@ Oleg.I尝试将格式化程序:“数据”。但是,日期时间仍未正确显示。 –

+0

@Avinash:对不起,输入错误。应该使用[formatter:“date”](http://www.trirand.com/jqgridwiki/doku.php?id=wiki:predefined_formatter#predefined_format_types)而不是'formatter:“data”'。我修复了我答案的文字。 – Oleg

+0

@ Oleg..No问题..现在工作.. :) –

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格式。

0

创建类字符串属性而不是日期时间

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

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