嵌套JSON到DataTable标准格式

时间:2016-02-05 05:16:08

标签: c# json datatable

具有嵌套集合的给定JSON的数据表的标准/正确形式是什么?。

JSON FILE

    {
"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
            }
        ]
    },      
]
}  

2 个答案:

答案 0 :(得分:1)

将jsonstring反序列化为某个类

List<User> UserList = JsonConvert.DeserializeObject<List<User>>(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;        
}

调用扩展方法,如

 DataTable dt = new DataTable();
 dt = UserList.ToDataTable<User>();
答案由example

提及

答案 1 :(得分:1)

在c#

中参考以下网站获取所有类型的Json操作

访问www.newtonsoft.com