#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: если этот ответ решит вашу проблему, вы можете отметить его как принятый ответ, поставив галочку. Тогда другие поймут, что больше помощь не нужна.