c#中的DataTable是一種常用的數(shù)據(jù)表格結(jié)構(gòu),支持存儲多行多列的數(shù)據(jù),可以方便地對數(shù)據(jù)進行增、刪、改、查等操作。當需要將DataTable轉(zhuǎn)換成json格式后,我們可以使用Newtonsoft.Json庫提供的JsonConvert類進行轉(zhuǎn)換。
using Newtonsoft.Json; //定義一個DataTable DataTable dt = new DataTable(); dt.Columns.Add("id", typeof(int)); dt.Columns.Add("name", typeof(string)); dt.Columns.Add("age", typeof(int)); dt.Rows.Add(1, "張三", 25); dt.Rows.Add(2, "李四", 30); //將DataTable轉(zhuǎn)換為json字符串 string json = JsonConvert.SerializeObject(dt, Formatting.Indented); Console.WriteLine(json);
以上代碼中,我們首先通過定義DataTable并添加數(shù)據(jù)。然后使用JsonConvert.SerializeObject()方法將DataTable轉(zhuǎn)化為json字符串,并通過控制臺輸出結(jié)果。在SerializeObject()方法中,第一個參數(shù)為需要轉(zhuǎn)換的DataTable對象,第二個參數(shù)表示json字符串的格式化選項,此處采用Indented進行縮進,使得json字符串更易于閱讀。
轉(zhuǎn)換后的結(jié)果如下所示:
[ { "id": 1, "name": "張三", "age": 25 }, { "id": 2, "name": "李四", "age": 30 } ]
從結(jié)果可以看出,DataTable中的每一行被轉(zhuǎn)化成json字符串中的一個對象,行中的每一列被轉(zhuǎn)化成對象中的一個屬性。此外,我們還可以使用JsonConvert.Deserialize()方法將json字符串轉(zhuǎn)換為DataTable對象,具體使用方式與SerializeObject()方法相似,不再詳述。