在C#中操作DataTable是非常常見的,但是我們有時候需要將DataTable轉化為Json,以便于進行數據傳輸或者存儲的需要。
首先,在C#中我們需要使用Newtonsoft.Json這個庫來進行Json的轉換,可以在NuGet中找到對應的包進行下載和引用:
PM>Install-Package Newtonsoft.Json
接下來我們需要定義一個Data轉Json的函數,這里我定義了一個靜態函數,將DataTable轉化為一個Json字符串:
public static string DataTableToJson(DataTable dt) { var dictlist = new List<Dictionary<string, object>>(); foreach (DataRow dr in dt.Rows) { var dict = new Dictionary<string, object>(); foreach (DataColumn dc in dt.Columns) { dict.Add(dc.ColumnName, dr[dc].ToString()); } dictlist.Add(dict); } return JsonConvert.SerializeObject(dictlist); }
這里我們定義了一個Dictionary類型的列表,用來臨時存儲DataTable中的所有數據,然后將其轉化為一個Json字符串。
使用時只需要調用這個函數即可:
var jsonStr = DataTableToJson(dt);
這樣就完成了DataTable到Json的轉換,我們可以將Json字符串傳輸到其他設備或者保存到文件中。