2017-02-23 11 views
-1

Я пытаюсь преобразовать свои следующие datatable в json, но пока не повезло.Как преобразовать сложную иерархическую Datatable в 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

«{ "Name": "компании", "Адрес": [{" адреса »,« ставки »,« обязательства »,« оценки »}]} - это то, что вы получаете или чего хотите? это, похоже, не было действительным JSON. – user7417866

ответ

0

Вы можете использовать LINQ группировать данные по Name и игнорировать адрес с 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.

Смежные вопросы