C# 数据表标准格式的嵌套JSON
对于包含嵌套集合的give JSON,数据表的标准/正确形式是什么 JSON文件C# 数据表标准格式的嵌套JSON,c#,json,datatable,C#,Json,Datatable,对于包含嵌套集合的give JSON,数据表的标准/正确形式是什么 JSON文件 { "F1":1, "F2":2, "F4":[{"E1":1,"E3":3}] "F3":[ { "E1":3, "E2":4 }, { "E1":5, "E2":6 }, { "E1":7, "E2":8, "E3":[ {
{
"F1":1,
"F2":2,
"F4":[{"E1":1,"E3":3}]
"F3":[
{
"E1":3,
"E2":4
},
{
"E1":5,
"E2":6
},
{
"E1":7,
"E2":8,
"E3":[
{
"D1":9,
"D2":10
}
]
},
]
}
将jsonstring反序列化到某个类
List<User> UserList = JsonConvert.DeserializeObject<List<User>>(jsonString);
List UserList=JsonConvert.DeserializeObject(jsonString);
为您的项目编写以下扩展方法
public static DataTable ToDataTable<T>(this IList<T> data)
{
PropertyDescriptorCollection props =
TypeDescriptor.GetProperties(typeof(T));
DataTable table = new DataTable();
for(int i = 0 ; i < props.Count ; i++)
{
PropertyDescriptor prop = props[i];
table.Columns.Add(prop.Name, prop.PropertyType);
}
object[] values = new object[props.Count];
foreach (T item in data)
{
for (int i = 0; i < values.Length; i++)
{
values[i] = props[i].GetValue(item);
}
table.Rows.Add(values);
}
return table;
}
公共静态数据表到数据表(此IList数据)
{
PropertyDescriptorCollection道具=
GetProperties(typeof(T));
DataTable=新的DataTable();
for(int i=0;i
调用扩展方法like
DataTable dt = new DataTable();
dt = UserList.ToDataTable<User>();
DataTable dt=newdatatable();
dt=UserList.ToDataTable();
答案由Thank Rajesh引用。如果我的JSON中没有嵌套集合,这将很好地工作。但是我问的是以DataTable的形式表示数据的标准格式,也就是说,我问的是上述示例中没有任何数据丢失的datatble表示。