【问题标题】:Nested JSON to DataTable Standard Format嵌套 JSON 到 DataTable 标准格式
【发布时间】:2016-05-14 23:49:27
【问题描述】:

具有嵌套集合的给定 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":[
            {
                "D1":9,
                "D2":10
            }
        ]
    },      
]
}  

【问题讨论】:

    标签: c# json datatable


    【解决方案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引用

    【讨论】:

    • 感谢 Rajesh。如果我的 JSON 中没有嵌套集合,这将正常工作。但我在询问以 DataTable 的形式表示数据的标准格式,即在没有任何数据丢失的情况下询问上述示例的数据表表示。
    猜你喜欢
    • 2022-12-31
    • 2016-05-16
    • 2016-11-25
    • 2021-12-31
    • 2021-09-30
    • 2014-04-08
    • 1970-01-01
    • 2020-12-21
    • 1970-01-01
    相关资源
    最近更新 更多