logo

Парсирај ЈСОН у Ц#

Увод:

Рашчлањивање ЈСОН-а у Ц# је уобичајен задатак за програмере који праве апликације које троше ЈСОН податке. ЈСОН представља ЈаваСцрипт нотација објеката и представља лагани формат који мења приказ података који је оптималан за читање и писање нормалних корисника и лак за машине за рашчлањивање и генерисање. У овом чланку ћемо погледати како рашчланити ЈСОН у Ц# користећи уграђени .НЕТ ЈСОН рашчлањивање библиотека.

ЈСОН рашчлањивање у Ц# може се постићи на различите начине: коришћењем Невтонсофт.Јсон библиотека или коришћењем Систем.Тект.Јсон библиотека уведен у .НЕТ Цоре 3.0 . Обе библиотеке су популаран избор за ЈСОН рашчлањивање у Ц# и пружају сличне функционалности.

Метод 1: Коришћење пакета Невтонсофт.Јсон

Један од најпопуларнијих пакета за рашчлањивање ЈСОН-а у Ц# је Невтонсофт.Јсон . То је пакет треће стране који пружа једноставан и флексибилан начин за серијализацију и десеријализацију ЈСОН података.

Користити Невтонсофт.Јсон у вашем Ц# пројекту, прво морате да га инсталирате. Можете га инсталирати преко НуГет менаџер пакета у Визуелни студио или покретањем следеће команде у конзоли менаџера пакета:

панда топити

код:

 Install-Package Newtonsoft.Json 

Једном инсталиран, можете почети да га користите у свом коду. Ево примера како да рашчланите ЈСОН користећи Невтонсофт.Јсон:

Ц# код:

 using Newtonsoft.Json; string json = @'{ 'name': 'John', 'age': 30, 'city': 'New York' }'; dynamic data = JsonConvert.DeserializeObject(json); string name = data.name; int age = data.age; string city = data.city; Console.WriteLine('Name: ' + name); Console.WriteLine('Age: ' + age); Console.WriteLine('City: ' + city); 

У овом примеру дефинишемо ЈСОН стринг и десеријализујемо га помоћу ЈсонЦонверт.ДесериализеОбјецт метод који обезбеђује Невтонсофт.Јсон . Метод враћа динамички објекат, који нам омогућава да приступимо ЈСОН подацима користећи синтаксу својства.

листа јава низова

Метод 2: Коришћење простора имена Систем.Тект.Јсон

Почевши од .НЕТ Цоре 3.0 и .НЕТ 5.0, Ц# такође пружа уграђену библиотеку за анализу ЈСОН-а под називом Систем.Тект.Јсон . То је лаган и брз ЈСОН серијализатор и десеријализатор који је укључен у .НЕТ рунтиме.

Ево примера како да рашчланите ЈСОН користећи Систем.Тект.Јсон:

Ц# код:

 using System.Text.Json; string json = @'{ 'name': 'John', 'age': 30, 'city': 'New York' }'; JsonDocument doc = JsonDocument.Parse(json); JsonElement root = doc.RootElement; string name = root.GetProperty('name').GetString(); int age = root.GetProperty('age').GetInt32(); string city = root.GetProperty('city').GetString(); Console.WriteLine('Name: ' + name); Console.WriteLine('Age: ' + age); Console.WriteLine('City: ' + city); 

У овом примеру користимо ЈсонДоцумент.Парсе метод који обезбеђује Систем.Тект.Јсон да рашчланите ЈСОН стринг. Метод враћа а ЈсонДоцумент објекат, који представља рашчлањене ЈСОН податке. Затим можемо приступити ЈСОН подацима користећи ЈсонЕлемент класа и њен ГетПроперти методом.

Метод 3: Коришћење класе ЈаваСцриптСериализер

Други начин за рашчлањивање ЈСОН-а у Ц# је коришћење ЈаваСцриптСериализер класе, која је део Систем.Веб.Ектенсионс скупштина. Ова класа је уведена у. НЕТ Фрамеворк 3.5 и пружа једноставан начин за десеријализацију ЈСОН података у јако типизован објекат.

Да бисте користили ЈаваСцриптСериализер класе, потребно је да креирате класу која представља ЈСОН објекат који желите да десериализујете. Класа треба да има својства која одговарају именима и типовима података својстава ЈСОН објекта. На пример, претпоставите да имате следећи ЈСОН објекат:

ЈСОН објекат:

штампање изјаве у јава
 { 'name': 'John Doe', 'age': 30, 'email': '[email protected]' } 

Можете креирати класу која представља овај објекат на следећи начин:

Ц# код:

преузми иоутубе са влц
 public class Person { public string Name { get; set; } public int Age { get; set; } public string Email { get; set; } } 

Када дефинишете класу, можете користити ЈаваСцриптСериализер класе да десеријализује ЈСОН податке у инстанцу класе Персон:

Ц# код:

 string json = '{'name':'John Doe','age':30,'email':'[email protected]'}'; JavaScriptSerializer serializer = new JavaScriptSerializer(); Person person = serializer.Deserialize(json); 

У горњем примеру, прво смо дефинисали стринг који садржи ЈСОН податке. Затим смо креирали инстанцу ЈаваСцриптСериализер класе и користио свој метод Десериализе да рашчлани ЈСОН податке у инстанцу класе Персон.

Вреди напоменути да је ЈаваСцриптСериализер класа има ограничења у поређењу са друге две методе о којима смо разговарали. На пример, не подржава неке од напреднијих функција ЈСОН-а, као што је руковање нултим вредностима или конверзија између конвенција о именовању ЦамелЦасе и ПасцалЦасе. Такође нема уграђену подршку за десеријализацију ЈСОН низова.

Закључак:

У овом чланку смо истражили два начина за рашчлањивање ЈСОН-а у Ц#: коришћењем Невтонсофт.Јсон библиотека и коришћење Систем.Тект.Јсон библиотека. Обе библиотеке пружају моћне могућности ЈСОН рашчлањивања и нашироко их користе програмери који праве Ц# апликације које троше ЈСОН податке.