2013-10-15 49 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