1. 程式人生 > >Json.Net 在.Net Core 2.0 中序列化DataSet 問題

Json.Net 在.Net Core 2.0 中序列化DataSet 問題

序列化 問題 name 一個 信息 blog 內容 dataset 分享

使用Asp.Net Core中自帶的版本10.0.1

生成一個簡單的DataSet

DataSet ds2 = new DataSet();
            DataTable table = new DataTable();
            table.Columns.Add(new DataColumn("id") { Caption = "編號" });
            table.Columns.Add(new DataColumn("name") { Caption = "姓名" });
            DataRow row1 = table.NewRow();
            row1[
"id"] = 1; row1["name"] = "hello"; table.Rows.Add(row1); ds2.Tables.Add(table); string sddtr = JsonConvert.SerializeObject(ds2); var dd = JsonConvert.DeserializeObject<DataSet>(sddtr);

查看序列化後的內容

技術分享圖片

可以看到數據是已xml的方式展現的,這裏面包括DataSet的基本信息,比如Caption等等。

這個問題可以查看:https://stackoverflow.com/questions/47392643/jsonconvert-serializeobject-with-dataset-returning-unexpected-result

把Json.Net升級到最新的版本

技術分享圖片

再次查看序列化後的內容

技術分享圖片

可以發現丟失了元數據的信息。如果原來的DataSet中Table的列是DateTime類型的,反序列化後列會變成String類型。

Json.Net 在.Net Core 2.0 中序列化DataSet 問題