關閉
搜索歷史

清除歷史

熱門搜索

網絡工作室網站建設seo優化小程序

零基礎干貨

零基礎干貨

SERVICE CENTER

C# dataTable轉json的幾種方法

網站建設 2021/10/16 8:34:00    98web    閱讀 129

方法1:使用StringBuilder

這是Json樣本數據的樣子: {"姓名 ":"張三", "年齡":"30"}。Json里用花括號保存對象,它可以包含多個名稱/值對。所以使用StringBuilder我們可以創建一個類似的Json字符串。

由于要使用StringBuilder類,我們首先需要導入System.Text命名空間,如下:

using System.Text;

下面的代碼將生成一個Json字符串,遍歷DataTable的行和列,獲取數據,添加到一個StringBuilder對象 JsonString,然后返回這個對象。

public string DataTableToJson(DataTable table)

{

var JsonString = new StringBuilder();

if (table.Rows.Count > 0)

{

JsonString.Append("[");

for (int i = 0; i < table.Rows.Count; i++)

{

JsonString.Append("{");

for (int j = 0; j < table.Columns.Count; j++)

{

if (j < table.Columns.Count - 1)

{

JsonString.Append("\"" + table.Columns[j].ColumnName.ToString() + "\":" + "\"" + table.Rows[i][j].ToString() + "\",");

}

else if (j == table.Columns.Count - 1)

{

JsonString.Append("\"" + table.Columns[j].ColumnName.ToString() + "\":" + "\"" + table.Rows[i][j].ToString() + "\"");

}

}

if (i == table.Rows.Count - 1)

{

JsonString.Append("}");

}

else

{

JsonString.Append("},");

}

}

JsonString.Append("]");

}

return JsonString.ToString();

}

方法2:使用 JavaScriptSerializer.

首先我們添加System.Web.Script.Serialization命名空間,如下:

using System.Web.Script.Serialization;

JavaScriptSerializer這個類是由異步通信層內部使用來序列化和反序列化數據。如果序列化一個對象,就使用序列化方法。反序列化Json字符串,使用Deserialize或DeserializeObject方法。在這里,我們使用序列化方法得到Json格式的數據。代碼以下:

public string DataTableToJsonWithJavaScriptSerializer(DataTable table)

{

JavaScriptSerializer jsSerializer = new JavaScriptSerializer();

List < Dictionary < string, object >> parentRow = new List < Dictionary < string, object >> ();

Dictionary < string, object > childRow;

foreach(DataRow row in table.Rows)

{

childRow = new Dictionary < string, object > ();

foreach(DataColumn col in table.Columns)

{

childRow.Add(col.ColumnName, row[col]);

}

parentRow.Add(childRow);

}

return jsSerializer.Serialize(parentRow);

}

方法3:使用Json.Net DLL (Newtonsoft)。

這個方法中要添加Json.Net DLL引用,我們可以從Newtonsoft下載Json.Net DLL,再導入命名空間,代碼如下:

using Newtonsoft.Json;

public string DataTableToJsonWithJsonNet(DataTable table)

{

string JsonString=string.Empty;

JsonString = JsonConvert.SerializeObject(table);

return JsonString;

}


TAG標簽:dataTable轉json
鏈接地址:/html/tech/wzjs/2021-10-16/158.html
鄭重聲明:以上內容來源自玖捌網絡工作室,轉載請注明出處!
39.030ms
偷拍摄偷窥综合网站,色综合久久8老色鬼网,国产成人亚洲欧美日韩,所有国产a片,国产在线视频久青草视频,无码中文字幕乱在线观看,国产精品com