C#中将JSON子类ATTRIBUTES转换为DataTable的方法
将ATTRIBUTES数据填充到DataTable的实现方案
一、简便实现方式
借助Newtonsoft.Json(Json.NET)的序列化/反序列化能力,可直接将提取出的ATTRIBUTES集合转换为DataTable,无需手动构建结构:
// 提取所有DATA项中的ATTRIBUTES对象集合 var attributesList = Values.data.Select(d => d.attributes).ToList(); // 一键转换为DataTable DataTable datatable = JsonConvert.DeserializeObject<DataTable>(JsonConvert.SerializeObject(attributesList));
二、手动构建DataTable并填充数据
如果需要自定义列名、处理特殊数据类型或做额外逻辑控制,可手动完成DataTable的构建与数据填充:
1. 创建DataTable并定义列结构
DataTable datatable = new DataTable(); // 添加与ATTRIBUTES字段匹配的列(可自定义列名或类型) datatable.Columns.Add("field_01", typeof(string)); datatable.Columns.Add("field_02", typeof(string)); datatable.Columns.Add("field_03", typeof(string));
2. 遍历数据并逐行填充
foreach (var dataItem in Values.data) { if (dataItem.attributes != null) { DataRow row = datatable.NewRow(); // 为每行赋值,用DBNull.Value处理null避免DataTable报错 row["field_01"] = dataItem.attributes.field_01 ?? DBNull.Value; row["field_02"] = dataItem.attributes.field_02 ?? DBNull.Value; row["field_03"] = dataItem.attributes.field_03 ?? DBNull.Value; datatable.Rows.Add(row); } }
内容的提问来源于stack exchange,提问作者Pspl
相关产品推荐
相关产品推荐

