Как сочетать Джаррей?

#c# #arrays #json

#c# #массивы #json

Вопрос:

c# Я собираюсь объединить Джаррея. У каждого Jarray есть общий идентификатор, объект работы. Я собираюсь создать файл json на основе «id». Что мне следует делать?

Джаррей 1

 [  {  "id" : "222",  "name" : "second"  },  {  "id" : "111",  "name" : "first"  },  {  "id" : "333",  "name" : "third"  } ]  

Джаррей 2

 [  {  "id" : "111",  "info" : "one one one"  },  {  "id" : "222",  "info" : "two two two"  },  {  "id" : "333",  "info" : "three three three"  } ]  

Джаррей 3

 [  {  "id" : "333",  "number" : "3"  "call" : "three"  },  {  "id" : "222",  "number" : "2"  "call" : "two"  },  {  "id" : "111",  "number" : "1"  "call" : "one"  } ]  

Комментарии:

1. Лично у меня был отличный опыт погружения с головой в глубокие воды, хотя я начинал с более глубоких базовых знаний. Тем не менее, я действительно не вижу ничего плохого в подходе ОП. Лично я избегаю Джаррея и других J-типов, когда это возможно, но я не вижу, чем плох этот вопрос. Одна из мыслей, с которой мы могли бы согласиться, заключается в том, что качество вопроса не самое лучшее, но я здесь для того, чтобы помочь, а не для того, чтобы люди, обращающиеся за помощью, когда-либо спрашивали снова.

Ответ №1:

Класс, который содержит все свойства:

 class NameInfoNumberCall {  internal string ID { get; set; }  internal string Name { get; set; }  internal string Info { get; set; }  internal string Number { get; set; }  internal string Call { get; set; } }   

Код для заполнения объектов на основе JArray. Просто зациклите все элементы, получите доступ к свойствам и сохраните их в объекте:

 static void Main() {  var jarray1 = JArray.Parse("[{"id":"222","name":"second"},{"id":"111","name":"first"},{"id":"333","name":"third"}]");  var jarray2 = JArray.Parse("[{"id":"111","info":"oneoneone"},{"id":"222","info":"twotwotwo"},{"id":"333","info":"threethreethree"}]");  var jarray3 = JArray.Parse("[{"id":"333","number":"3","call":"three"},{"id":"222","number":"2","call":"two"},{"id":"111","number":"1","call":"one"}]");   var infos = new Dictionarylt;string, NameInfoNumberCallgt;();  foreach (JObject o in jarray1)  {  var info = new NameInfoNumberCall();  info.ID = (string)o["id"];  info.Name = (string)o["name"];  infos.Add(info.ID, info);  }   foreach (JObject o in jarray2)  {  infos[(string)o["id"]].Info = (string)o["info"];  }   foreach (JObject o in jarray3)  {  infos[(string)o["id"]].Number = (string)o["number"];  infos[(string)o["id"]].Call = (string)o["call"];  }   // do something with the data }  

Комментарии:

1. ты мой герой, ты мой ангел, ты все для меня…. спасибо, сэр, любовь моя

2. @ggumini: если этот ответ решит вашу проблему, вы можете отметить его как принятый ответ, поставив галочку. Тогда другие поймут, что больше помощь не нужна.