2015-10-14 2 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 *! Этот сайт помогает решать проблемы с ** вашим кодом **. Вы публикуете свой код здесь, когда у вас есть результаты, которые отличаются от ожидаемых, или когда вы получаете сообщение об ошибке. Вы также должны описать, какие результаты у вас есть и что ожидается, и/или предоставить сведения об ошибке. После этого сообщество поможет вам решить проблемы, и (иногда) это даст вам некоторые рекомендации. Вот как работает * stackoverflow *. Как вы можете видеть, ваш вопрос не содержит всей необходимой информации. Пожалуйста, ** отредактируйте ** свой вопрос и добавьте код с другой необходимой информацией, если вы хотите получить некоторую помощь. –

ответ

1

Вы можете сделать это довольно легко с помощью LINQ-to-JSON API Json.NET в:

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()); 

Fiddle: https://dotnetfiddle.net/dXCdlO

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