Увод:
Рашчлањивање ЈСОН-а у Ц# је уобичајен задатак за програмере који праве апликације које троше ЈСОН податке. ЈСОН представља ЈаваСцрипт нотација објеката и представља лагани формат који мења приказ података који је оптималан за читање и писање нормалних корисника и лак за машине за рашчлањивање и генерисање. У овом чланку ћемо погледати како рашчланити ЈСОН у Ц# користећи уграђени .НЕТ ЈСОН рашчлањивање библиотека.
ЈСОН рашчлањивање у Ц# може се постићи на различите начине: коришћењем Невтонсофт.Јсон библиотека или коришћењем Систем.Тект.Јсон библиотека уведен у .НЕТ Цоре 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);
У горњем примеру, прво смо дефинисали стринг који садржи ЈСОН податке. Затим смо креирали инстанцу ЈаваСцриптСериализер класе и користио свој метод Десериализе да рашчлани ЈСОН податке у инстанцу класе Персон.
Вреди напоменути да је ЈаваСцриптСериализер класа има ограничења у поређењу са друге две методе о којима смо разговарали. На пример, не подржава неке од напреднијих функција ЈСОН-а, као што је руковање нултим вредностима или конверзија између конвенција о именовању ЦамелЦасе и ПасцалЦасе. Такође нема уграђену подршку за десеријализацију ЈСОН низова.
Закључак:
У овом чланку смо истражили два начина за рашчлањивање ЈСОН-а у Ц#: коришћењем Невтонсофт.Јсон библиотека и коришћење Систем.Тект.Јсон библиотека. Обе библиотеке пружају моћне могућности ЈСОН рашчлањивања и нашироко их користе програмери који праве Ц# апликације које троше ЈСОН податке.