2017-02-23 74 views
-1

我試圖將我的以下datatable轉換爲json,但直到現在還沒有運氣。如何將複雜的分層數據錶轉換爲json?

Datatable像:

<b>Name Address</b> 

companies addresses 
companies bids 
companies commitments 
companies evaluations 
companies Null 

我想json是這樣的地方的名字是null這將是父節點和具有相同父節點文本孩子出生時都該父節點內。

{ 
    "Name": "companies", 
    "Address": [ 
    { 
     "addresses", 
     "bids","commitments", "evaluations" 
    } 
    ] 
} 

將此代碼寫入C#

+0

「{ 「名稱」: 「公司」, 「地址」:[{「地址「,」出價「,」承諾「,」評估「}]}'是你得到的還是你想要的?這似乎並不是有效的JSON。 – user7417866

回答

0

您可以通過Name使用LINQ將你的數據和該組中null值忽略地址。最後,你可以使用Newtonsoft JSON您預計的數據轉換爲JSON字符串是這樣的: -

var result = dt.AsEnumerable().GroupBy(x => x.Field<string>("Name")) 
       .Select(x => new 
         { 
          Name = x.Key, 
          Address = x.Where(z => z.Field<string>("Address") != null) 
             .Select(z => z.Field<string>("Address")).ToList() 
         }); 

string jsonResult = JsonConvert.SerializeObject(result); 

Sample Fiddle.