簡體   English   中英

Newtonsoft.Json使用MySqlDateTime序列化數據表

[英]Newtonsoft.Json serialize datatable with MySqlDateTime

我在DataTable中得到了一種MySqlDateTime,它是從MySql中選擇的,就像“從t_storage中選擇交付時間”,然后填充到DataTable中。 現在我想通過Newtonsoft.Json將此DataTable轉換為json,但無法獲取日期時間,它始終轉換為null。 下面的一些代碼:

DataTable dt = new DataTable();
string sql = "select ig, gid, delivertime from t_storage";
MariadbHelper db = new MariadbHelper();// a dbhelper 
db.excute(sql).Fill(dt);// pull the sql result into dt
string ret = JsonConvert.SerializeObject(dt, Formatting.Indented);// the delivertime is null: [ {"id":1, "gid":1, "delivertime":null}]

我曾嘗試使用IsoDateTimeConverter設置日期,但無法正常工作。

我確定dt.Rows [0] [“ delivertime”]是MySqlDateTime的一種,其值不為null。 我可以使用'(((MySql.Data.Types.MySqlDateTime)dt.Rows [0] [“ delivertime”])。GetDateTime()'將其轉換為DataTime類型。 在t_storage中,列deliverytime是日期時間的類型。

有想法嗎?

Json.NET使用的默認格式是ISO 8601標准:“ 2012-03-19T07:22Z”。 如果獲取的字符串格式不同,則可以在序列化時定義IsoDateTimeConverterDateTimeFormat 你可以在這里閱讀。

因此,定義序列化邏輯為

string ret = JsonConvert.SerializeObject(dt, new IsoDateTimeConverter() { DateTimeFormat = "yyyy/M/d H:m:ss" });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM