C# DataTable 到 JSON 转换:实现所需的格式
本指南演示如何将 C# DataTable 转换为具有特定结构的 JSON 字符串,避免使用默认的 JSON 对象格式。 目标格式是一个 JSON 对象,其中包含单个记录对象的“记录”数组。
步骤:
填充数据表: 首先创建一个数据表并使用数据库(或任何其他来源)中的数据填充它。
使用JavaScriptSerializer:利用JavaScriptSerializer
类来处理JSON序列化。
创建字典列表:构造一个列表,将 DataTable 的每一行存储为字典。
迭代并填充字典:循环遍历数据表中的每个DataRow
。对于每一行:
DataColumn
。col.ColumnName
)作为键,将对应的列值(dr[col]
)作为值添加到字典中。序列化列表:最后,使用 JavaScriptSerializer
序列化字典列表,将其包装在具有“records”属性的 JSON 对象中。
代码示例:
<code class="language-csharp">using System.Web.Script.Serialization; using System.Data; using System.Collections.Generic; public string ConvertDataTableToJson() { DataTable dataTable = new DataTable(); // Fill dataTable with data from your database JavaScriptSerializer serializer = new JavaScriptSerializer(); List<Dictionary<string, object>> records = new List<Dictionary<string, object>>(); foreach (DataRow row in dataTable.Rows) { Dictionary<string, object> record = new Dictionary<string, object>(); foreach (DataColumn column in dataTable.Columns) { record.Add(column.ColumnName, row[column]); } records.Add(record); } return serializer.Serialize(new { records = records }); }</code>
此修订后的代码提供了一种清晰有效的方法,用于将 DataTable 转换为指定的 JSON 格式,确保每个记录在“记录”数组中正确表示。 请记住添加必要的 using
语句。
以上是如何在 C# 中将 DataTable 转换为带有'records”数组的 JSON 字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!