Как привести json к классу - C#
Формулировка задачи:
Есть вот такой json: Нужно привести его к классу. Я пробовал создать вот такие классы: А потом приводить вот так: Но код выдает ошибку, очевидно из-за числа 201 в начале первого json обьекта массива. Сам массив я получаю от апи вк по запросу университетов города Киева - в документации сказано что: "После успешного выполнения возвращает объект, содержащий число результатов в поле count и массив объектов, описывающих университеты, в поле items. Каждый объект содержит следующие поля: id (integer) — идентификатор университета; title (string) — название университета." Помогите дописать класс для десериализации этого json.
{"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":"ІПО КНУ ім. Т. Шевченка (рус. ИПО КНУ им. Т. Шевченко)"}]}
public class RootObjectUnivercity { public List<Univercity> response { get; set; } } public class Univercity { public int id { get; set; } public string title { get; set; } }
RootObjectUnivercity rootUnivercity = (RootObjectUnivercity)new DataContractJsonSerializer(typeof(RootObjectUnivercity)).ReadObject(stream); // в stream находиться json указанный выше.
Решение задачи: «Как привести json к классу»
textual
Листинг программы
namespace ConsoleApplication293 { using System.Diagnostics; using System.Linq; using System.Net.Http; using System.Threading.Tasks; using Newtonsoft.Json.Linq; internal class Program { private static void Main() => MainAsync().Wait(); private static async Task MainAsync() { using (var client = new HttpClient()) { var content = await client.GetStringAsync( "https://api.vk.com/method/database.getUniversities?country_id=2&city_id=314"); var json = JObject.Parse(content).SelectTokens("$.response[1:]"); var universitets = json.Select(n => n.ToObject<University>()).ToList(); Debugger.Break(); } } } public class University { public int Id { get; set; } public string Title { get; set; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д