Как привести json к классу - C#

Узнай цену своей работы

Формулировка задачи:

Есть вот такой json:
Листинг программы
  1. {"response":[201,{"id":1096,"title":"КПI ім. І. Сікорського (рус. КПИ им. И. Сикорского)"},{"id":1135,"title":"НУФВСУ (рус. НУФВСУ (бывш. КГИФК))"},{"id":1140,"title":"КДАВТ ім. Петра Конашевича-Сагайдачного (рус. КГАВТ им. Конашевича-Сагайдачного)"},{"id":1153,"title":"НУХТ (рус. НУПТ (бывш. КТУХТ))"},{"id":1231,"title":"КНУБА (КНУСиА, КИСИ)"},{"id":1282,"title":"КНЕУ ім. Вадима Гетьмана (рус. КНЭУ им. В. Гетьмана (КИНХ им. Д. С. Коротченко))"},{"id":1656,"title":"УДУФМТ (колишн. УАЗТ) (рус. УГУФМТ (бывш. УАВТ))"},{"id":1686,"title":"МАУ (бывш. МИУ)"},{"id":1892,"title":"Інститут Міжнародних Відносин (рус. КИМО)"},{"id":2866,"title":"КНУТД (колишній КТІЛП) (рус. КНУТД)"},{"id":2881,"title":"КНУ ім. Тараса Шевченка (рус. КНУ им. Т. Шевченко)"},{"id":2984,"title":"КУП ім. В. М. Корецького НАН України (рус. КУП НАН Украины)"},{"id":3063,"title":"НТУ (колишн. КАДІ, УТУ) (рус. НТУ (бывш. КАДИ))"},{"id":3216,"title":"МЭИ"},{"id":3272,"title":"КЮІ МВС України (рус. КЮИ МВД Украины)"},{"id":3336,"title":"КУТЕП (рус. КУТЭП)"},{"id":3502,"title":"НПУ ім. М.Драгоманова (рус. НПУ им. М. Драгоманова)"},{"id":3750,"title":"КВЗРИУ им. С. М. Кирова"},{"id":3814,"title":"КИМ (КГВМУ) им. Глиэра"},{"id":3990,"title":"КСУ"},{"id":4013,"title":"НАКККМ (рус. НАРККиИ)"},{"id":4658,"title":"МАУП"},{"id":5181,"title":"КНУКіМ (рус. КНУКиИ)"},{"id":5616,"title":"НаУКМА (рус. НаУКМА)"},{"id":6039,"title":"МХУ"},{"id":6400,"title":"КЭИМ (Экомен)"},{"id":7020,"title":"НУБіП України (рус. НУБиП Украины (бывш. НАУ))"},{"id":7671,"title":"ДУТ (кол. ДУІКТ) (рус. ГУТ (бывш. ГУИКТ))"},{"id":7959,"title":"КНУТКіТ ім. І.К. Карпенка-Карого (рус. КНУТКиТ (КГИТИ) им. И. К. Карпенко-Карого)"},{"id":8384,"title":"КМУ (МИЛИП)"},{"id":8496,"title":"КВВМПУ"},{"id":8915,"title":"АМУ"},{"id":9426,"title":"КМУ УАНМ"},{"id":9871,"title":"КИИМ"},{"id":10220,"title":"НАСОА (кол. ДАСОА) (рус. НАСУА (бывш. ГАСУА))"},{"id":10637,"title":"ВІТІ (рус. ВИТИ (бывш. ВИТИ НТУУ «КПИ»))"},{"id":10973,"title":"КВТИУ"},{"id":11608,"title":"КГИК им. А. Корнейчука"},{"id":11837,"title":"ВМУРоЛ «Україна» (рус. ВМУРоЛ (ОМУРЧ) «Украина»)"},{"id":11886,"title":"КГА (кол. КГI) (рус. КГА (бывш. КГИ))"},{"id":12610,"title":"УАГИ «ВМУ (США) в Украине»"},{"id":12624,"title":"НМА України ім. П. І. Чайковського (рус. НМА Украины им. П. И. Чайковского)"},{"id":12752,"title":"ИТФПУ"},{"id":13061,"title":"КНЛУ (кол. КДПІІМ) (рус. КНЛУ (бывш. КГПИИЯ))"},{"id":13607,"title":"КДАиС"},{"id":15708,"title":"УДУЕФ (рус. УГУЭФ)"},{"id":16215,"title":"МНТУ им. ак. Ю. Бугая"},{"id":16713,"title":"НАОМА (рус. НАИИА)"},{"id":16765,"title":"ААУ (рус. ААУ)"},{"id":16908,"title":"УФЭИ"},{"id":17136,"title":"МСУ"},{"id":17612,"title":"ДАУ при МИД Украины"},{"id":17622,"title":"НАВС (КНУВС) (рус. НАВД (КНУВД) )"},{"id":18115,"title":"КДІДПМіД ім. М. Бойчука (рус. КГИДПИиД им. М. Бойчука)"},{"id":18346,"title":"АПСВТ (рус. АТСОТ (бывш. АТиСО))"},{"id":18594,"title":"УИРФР КНЭУ"},{"id":18682,"title":"КУ ім. Б. Грінченка (кол. КМПУ) (рус. КУ им. Б. Гринченко (бывш. КГПУ))"},{"id":18973,"title":"КИБД"},{"id":19047,"title":"МУФ (рус. МУФ)"},{"id":19281,"title":"НАУ (кол. КІІЦА, КМУЦА) (рус. НАУ (бывш. КИИГА, КМУГА))"},{"id":19501,"title":"НАУ (Академия управления)"},{"id":19504,"title":"ИЭ при АН Украины"},{"id":20154,"title":"ДЕТУТ (рус. ГЭТУТ (КУЭТТ, КИЖДТ))"},{"id":20383,"title":"КИП при НАНУ"},{"id":21019,"title":"КНТЕУ (рус. КНТЭУ)"},{"id":21202,"title":"ИММиБ"},{"id":21471,"title":"ЛБИ (КФ)"},{"id":22250,"title":"УЕТС (рус. УЕСБ)"},{"id":23088,"title":"ХИХМиД (МИХМД) им. Сальвадора Дали"},{"id":23174,"title":"УИЛМ"},{"id":23387,"title":"КАПИ (КАПМ)"},{"id":23578,"title":"НМУ ім. О.О. Богомольця (рус. НМУ им. А. А. Богомольца)"},{"id":23942,"title":"ЕУ (ЕУФИМБ, ЕИФИСМиБ)"},{"id":24863,"title":"КУУП (кол. ДАЖКГ, УАБП) (рус. КУУП (бывш. ГАЖКХ, УАБП))"},{"id":25282,"title":"КУРО (КУРВ, КИРО, КИРВ)"},{"id":34004,"title":"ИПКГСЗУ"},{"id":34970,"title":"КРОК"},{"id":35599,"title":"МСИ им. Державина"},{"id":35643,"title":"КиМУ"},{"id":39199,"title":"ИСБУиА"},{"id":41226,"title":"УкрИНТЭИ"},{"id":41679,"title":"КШЭ (KSE)"},{"id":43042,"title":"ГАЛПУ"},{"id":62644,"title":"КИБиТ"},{"id":91571,"title":"ВА ПВО СВ им. Василевского (до 1994 г.)"},{"id":91934,"title":"КВВАИУ (до 1990 г.)"},{"id":93413,"title":"КИСиКС им. Святой княгини Ольги"},{"id":105328,"title":"ИС НАНУ"},{"id":126961,"title":"ИР (ИППР)"},{"id":141734,"title":"ІНЕМ"},{"id":141808,"title":"ИББ «Украина» (до 2000 г.)"},{"id":167678,"title":"НАПУ"},{"id":167838,"title":"НАДУ (НАГУ) при Президенте Украины"},{"id":168167,"title":"КБИ при НТУУ «КПИ»"},{"id":168202,"title":"НУК им. Макарова (КФ)"},{"id":170274,"title":"ИМБиГ НАНУ"},{"id":170275,"title":"ИЯИ НАНУ"},{"id":170282,"title":"ИПО-побут"},{"id":170397,"title":"ИМЭМО НАНУ"},{"id":176164,"title":"ІПО КНУ ім. Т. Шевченка (рус. ИПО КНУ им. Т. Шевченко)"}]}
Нужно привести его к классу. Я пробовал создать вот такие классы:
Листинг программы
  1. public class RootObjectUnivercity
  2. {
  3. public List<Univercity> response { get; set; }
  4. }
  5. public class Univercity
  6. {
  7. public int id { get; set; }
  8. public string title { get; set; }
  9. }
А потом приводить вот так:
Листинг программы
  1. RootObjectUnivercity rootUnivercity = (RootObjectUnivercity)new DataContractJsonSerializer(typeof(RootObjectUnivercity)).ReadObject(stream); // в stream находиться json указанный выше.
Но код выдает ошибку, очевидно из-за числа 201 в начале первого json обьекта массива. Сам массив я получаю от апи вк по запросу университетов города Киева - в документации сказано что: "После успешного выполнения возвращает объект, содержащий число результатов в поле count и массив объектов, описывающих университеты, в поле items. Каждый объект содержит следующие поля: id (integer) — идентификатор университета; title (string) — название университета." Помогите дописать класс для десериализации этого json.

Решение задачи: «Как привести json к классу»

textual
Листинг программы
  1. namespace ConsoleApplication293
  2. {
  3.     using System.Diagnostics;
  4.     using System.Linq;
  5.     using System.Net.Http;
  6.     using System.Threading.Tasks;
  7.     using Newtonsoft.Json.Linq;
  8.  
  9.     internal class Program
  10.     {
  11.         private static void Main() => MainAsync().Wait();
  12.  
  13.         private static async Task MainAsync()
  14.         {
  15.             using (var client = new HttpClient())
  16.             {
  17.                 var content =
  18.                     await client.GetStringAsync(
  19.                         "https://api.vk.com/method/database.getUniversities?country_id=2&city_id=314");
  20.  
  21.                 var json = JObject.Parse(content).SelectTokens("$.response[1:]");
  22.  
  23.                 var universitets = json.Select(n => n.ToObject<University>()).ToList();
  24.  
  25.                 Debugger.Break();
  26.             }
  27.         }
  28.     }
  29.  
  30.     public class University
  31.     {
  32.         public int Id { get; set; }
  33.         public string Title { get; set; }
  34.     }
  35. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут