2015-10-14 71 views
-3

对象我已经JSON序列写有JSON.NET,看起来像这样:如何变换对象的JSON数组包含数组

{ 
    "data": [ 
     { 
      "A": "1", 
      "B": "4" 
     }, 
     { 
      "A": "2", 
      "B": "5" 
     }, 
     { 
      "A": "3", 
      "B": "6" 
     } 
    ] 
} 

任何想法,我怎么可以从多个按键改变为有一个关键的多个值像这样

{ 
    "data": { 
     "A": [ 
      "1", 
      "2", 
      "3" 
     ], 
     "B": [ 
      "4", 
      "5", 
      "6" 
     ] 
    } 
} 

在此先感谢。

+0

*欢迎使用计算器*!本网站有助于解决**代码**的问题。当您的结果与预期结果不同或发生错误时,您可以在此处发布代码。你也应该描述你有什么结果,什么是预期和/或提供错误细节。之后社区将帮助你解决问题,并且(有时)它会给你一些指导。这就是* stackoverflow *的工作原理。正如你所看到的,你的问题没有全部适当的信息。请**编辑**您的问题,并添加其他所需信息的代码,如果你想得到一些帮助。 –

回答

1

可以使用Json.Net的LINQ-to-JSON API相当做到这一点很容易:

JObject obj = JObject.Parse(json); 

obj["data"] = new JObject(obj["data"] 
    .Children<JObject>() 
    .SelectMany(jo => jo.Properties()) 
    .GroupBy(jp => jp.Name) 
    .Select(g => new JProperty(g.Key, new JArray(g.Values())))); 

Console.WriteLine(obj.ToString()); 

小提琴:https://dotnetfiddle.net/dXCdlO

相关问题