在進行前端開發的時候,我們會遇到需要將C#中的數據類型轉化成JSON格式的數據類型,以便于在前端頁面處理和展現數據。在此我們介紹一種將C#中的table轉化成json數據類型的方法。
//定義 table 類型 public class TableData { public string[] Headers { get; set; } //表頭 public List<Dictionary<string, object>> Tdatas { get; set; } //表中數據 }
上述代碼表示我們定義了一個包含表頭和表數據的表格數據類型。Headers表示表頭,Tdatas表示表中的數據,其中list中的每一個dictionary對象代表一行數據。
// C#代碼實現table轉化為json public string TableToJson(DataTable dt) { StringBuilder jsonBuilder = new StringBuilder(); TableData tableData = new TableData(); List<Dictionary<string,object>> datas = new List<Dictionary<string,object>>(); string[] headers = new string[dt.Columns.Count]; //循環讀取表頭數據 for (int i = 0; i < dt.Columns.Count; i++) { headers[i] = dt.Columns[i].ColumnName; } tableData.Headers = headers; //循環讀取表格數據 foreach (DataRow row in dt.Rows) { Dictionary<string,object> rowData = new Dictionary<string,object>(); for (int j = 0; j < dt.Columns.Count; j++) { rowData[headers[j]] = row[j]; } datas.Add(rowData); } tableData.Tdatas = datas; //將tableData類型轉化成Json數據類型 DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(TableData)); MemoryStream msObj = new MemoryStream(); msObj.Seek(0, SeekOrigin.Begin); js.WriteObject(msObj, tableData); jsonBuilder.Append(Encoding.UTF8.GetString(msObj.ToArray())); msObj.Close(); msObj.Dispose(); return jsonBuilder.ToString(); //返回轉化后的Json數據類型 }
上述代碼通過循環讀取table中的表頭和表格數據,并將這些數據存入tableData中,最后使用DataContractJsonSerializer將tableData類型轉化成Json格式的數據。
我們可以將上述代碼封裝成公共方法,方便在整個項目中進行調用。本文僅僅展示了一種將C#中的table轉化成json數據類型的方法,具體處理方法需要根據實際情況而定。
下一篇mysql初學者