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