C#中将DataTable转换为Json有三种常见方法,分别是使用JavaScriptSerializer、Newtonsoft.Json和Json.net。下面我将详细介绍每种方法的步骤和示例代码,并分别说明它们的优缺点。
使用JavaScriptSerializer
步骤
- 在代码头部添加引用:
using System.Web.Script.Serialization;
- 将DataTable序列化为Json:
private string DataTableToJson(DataTable dt)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
Dictionary<string, object> row;
foreach (DataRow dr in dt.Rows)
{
row = new Dictionary<string, object>();
foreach (DataColumn col in dt.Columns)
{
row.Add(col.ColumnName, dr[col]);
}
rows.Add(row);
}
return serializer.Serialize(rows);
}
示例
DataTable dt = new DataTable();
// 假设DataTable已经加载了数据
string result = DataTableToJson(dt);
优缺点
优点:
- 使用简单,代码量少。
- 支持.Net Framework 4.0以上的所有版本。
缺点:
- 性能不如其它方式。
使用Newtonsoft.Json
步骤
- 在代码头部添加引用:
using Newtonsoft.Json;
- 将DataTable序列化为Json:
private string DataTableToJson(DataTable dt)
{
return JsonConvert.SerializeObject(dt, Formatting.Indented);
}
示例
DataTable dt = new DataTable();
// 假设DataTable已经加载了数据
string result = DataTableToJson(dt);
优缺点
优点:
- 序列化速度快。
- 可以自定义Json的格式。
缺点:
- 需要引入Newtonsoft.Json库。
使用Json.net
步骤
- 在代码头部添加引用:
using Json.Net;
- 将DataTable序列化为Json:
private string DataTableToJson(DataTable dt)
{
return JsonConvert.SerializeObject(dt, JsonConverterSettings.JsonSettings());
}
示例
DataTable dt = new DataTable();
// 假设DataTable已经加载了数据
string result = DataTableToJson(dt);
优缺点
优点:
- 支持自定义Json的格式。
- 支持多种类型的序列化。
缺点:
- 需要引入Json.Net库。
综上所述,三种方法各具特色,可以根据项目需求选择不同的方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#中DataTable 转换为 Json的方法汇总(三种方法) - Python技术站