C# DataTable是一個(gè)非常重要的數(shù)據(jù)結(jié)構(gòu),它能夠以類似于Excel表格的形式存儲(chǔ)數(shù)據(jù)。而Json是一種輕量級(jí)的數(shù)據(jù)格式,常用于數(shù)據(jù)傳輸和數(shù)據(jù)交換。如果我們需要將DataTable轉(zhuǎn)換成Json格式,可以利用C#語言提供的相關(guān)函數(shù)。
using System; using System.Data; using System.Web.Script.Serialization; public class DataTableToJson { public string Convert(DataTable dataTable) { JavaScriptSerializer serializer = new JavaScriptSerializer(); List>rows = new List >(); foreach (DataRow dataRow in dataTable.Rows) { Dictionary row = new Dictionary (); foreach (DataColumn dataColumn in dataTable.Columns) { row.Add(dataColumn.ColumnName, dataRow[dataColumn]); } rows.Add(row); } return serializer.Serialize(rows); } }
上述代碼中使用了JavaScriptSerializer類,該類是C#語言自帶的用于序列化和反序列化Json數(shù)據(jù)的類。具體實(shí)現(xiàn)中,首先利用foreach循環(huán)遍歷每個(gè)DataRow,再根據(jù)foreach循環(huán)遍歷每個(gè)DataColumn(即表頭),將每個(gè)單元格數(shù)據(jù)添加到字典中。最終利用Serialize函數(shù)將字典序列化成Json格式。
使用時(shí),只需將DataTable轉(zhuǎn)換成Json字符串即可:
DataTable dataTable = new DataTable(); // 添加表頭和數(shù)據(jù) string jsonString = new DataTableToJson().Convert(dataTable);
總的來說,利用C# DataTable轉(zhuǎn)換成Json格式是非常方便的,因?yàn)槟阒恍枋褂肅#語言提供的相關(guān)函數(shù)即可實(shí)現(xiàn)。這種方式適用于需要將數(shù)據(jù)從C#后臺(tái)傳遞到前端JavaScript。
如果你想再擴(kuò)展下,可以將Json轉(zhuǎn)換成C#對(duì)象,這種方式適用于從客戶端通過Ajax請(qǐng)求C#后臺(tái)并接收J(rèn)son數(shù)據(jù)的場(chǎng)景,這個(gè)可以再另外的文章中詳細(xì)介紹。