2017-02-23 98 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.

相关问题