logo

Анализирайте JSON в C#

Въведение:

Разборът на JSON в C# е обичайна задача за разработчиците, създаващи приложения, които използват JSON данни. JSON представлява JavaScript обектна нотация и е олекотен променящ се формат за представяне на данни, който е оптимален за нормални потребители за четене и писане и лесен за машини за анализ и генериране. В тази статия ще разгледаме как да анализираме JSON в C# с помощта на вградения .NET JSON анализиране на библиотеки.

Анализът на JSON в C# може да бъде постигнат по различни начини: с помощта на Библиотека Newtonsoft.Json или с помощта на System.Text.Json библиотека въведен в .NET Core 3.0 . И двете библиотеки са популярен избор за анализ на JSON в C# и предоставят подобни функции.

Метод 1: Използване на пакета Newtonsoft.Json

Един от най-популярните пакети за разбор на JSON в C# е Newtonsoft.Json . Това е пакет на трета страна, който предоставя прост и гъвкав начин за сериализиране и десериализиране на JSON данни.

Да използвам Newtonsoft.Json във вашия C# проект, първо трябва да го инсталирате. Можете да го инсталирате чрез NuGet мениджър на пакети в Визуално студио или като изпълните следната команда в конзолата на Package Manager:

java абстрактен клас

Код:

 Install-Package Newtonsoft.Json 

Веднъж инсталиран, можете да започнете да го използвате във вашия код. Ето пример за това как да анализирате JSON с помощта на Newtonsoft.Json:

C# код:

 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); 

В този пример ние дефинираме JSON низ и го десериализираме с помощта на JsonConvert.DeserializeObject метод, предоставен от Newtonsoft.Json . Методът връща динамичен обект, който ни позволява достъп до JSON данните, използвайки синтаксиса на свойствата.

java замества всички

Метод 2: Използване на пространството от имена System.Text.Json

Започвайки с .NET Core 3.0 и .NET 5.0, C# също предоставя вградена JSON библиотека за разбор, наречена System.Text.Json . Това е лек и бърз JSON сериализатор и десериализатор, който е включен в .NET време на изпълнение.

Ето пример за това как да анализирате JSON с помощта на System.Text.Json:

C# код:

 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); 

В този пример използваме JsonDocument.Parse метод, предоставен от System.Text.Json за анализиране на JSON низа. Методът връща a JsonDocument обект, който представлява анализираните JSON данни. След това можем да получим достъп до JSON данните, като използваме JsonElement клас и неговите GetProperty метод.

Катрина Кайф

Метод 3: Използване на клас JavaScriptSerializer

Друг начин за анализиране на JSON в C# е чрез използване на JavaScriptSerializer клас, който е част от System.Web.Extensions монтаж. Този клас е въведен през. NET Framework 3.5 и предоставя лесен начин за десериализиране на JSON данни в строго типизиран обект.

За да използвате JavaScriptSerializer трябва да създадете клас, който представлява JSON обекта, който искате да десериализирате. Класът трябва да има свойства, които съответстват на имената и типовете данни на свойствата на JSON обекта. Да приемем например, че имате следния JSON обект:

JSON обект:

 { 'name': 'John Doe', 'age': 30, 'email': '[email protected]' } 

Можете да създадете клас, който представя този обект, както следва:

C# код:

 public class Person { public string Name { get; set; } public int Age { get; set; } public string Email { get; set; } } 

След като дефинирате класа, можете да използвате JavaScriptSerializer клас за десериализиране на JSON данните в екземпляр на класа Person:

java switch int

C# код:

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

В горния пример първо дефинирахме низ, съдържащ JSON данните. След това създадохме екземпляр на JavaScriptSerializer и използва неговия метод Deserialize, за да анализира JSON данните в екземпляр на класа Person.

Заслужава да се отбележи, че JavaScriptSerializer има ограничения в сравнение с другите два метода, които обсъдихме. Например, той не поддържа някои от по-разширените функции на JSON, като обработка на нулеви стойности или преобразуване между конвенциите за именуване на camelCase и PascalCase. Освен това няма вградена поддръжка за десериализация на JSON масиви.

Заключение:

В тази статия проучихме два начина за анализиране на JSON в C#: използване на Newtonsoft.Json библиотека и използване на System.Text.Json библиотека. И двете библиотеки предоставят мощни възможности за разбор на JSON и се използват широко от разработчиците, създаващи C# приложения, които консумират JSON данни.