2016-02-05 70 views
1

什么是具有嵌套集合的JSON数据表的标准/正确形式?将JSON嵌套到DataTable标准格式

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

回答

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

+0

谢谢Rajesh.This将正常工作,如果我没有在我的JSON嵌套集合。但是我正在询问用DataTable的形式表示数据的标准格式,即我们询问上述示例的数据表示,没有任何数据丢失。 –

1

refered参考以下网站对所有类型的Json操作在C#

访问www.newtonsoft.com