如何将复杂的分层Datatable转换为json?

时间:2017-02-23 05:01:36

标签: c# asp.net .net asp.net-mvc-4 c#-3.0

我正在尝试将以下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" } ] } ,它将是父节点,并且具有相同的父节点text child将进入该父节点。

C#

if (convertView == null) { // get layout from mobile.xml gridView = inflater.inflate(R.layout.skills_single_item, null); // set value into textview textView = (TextView) gridView.findViewById(R.id.single_label); } else { gridView = (View) convertView; } textView.setText(skillValues[position]); 中编写此代码。

1 个答案:

答案 0 :(得分: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.