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 менеджер пакетів в Visual Studio або запустивши таку команду в консолі менеджера пакетів:

відкинути в sql

код:

 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 за допомогою синтаксису властивості.

читання файлу csv в 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 метод.

jpa проти hibernate

Спосіб 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:

df.loc

Код 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 class має обмеження порівняно з двома іншими методами, які ми обговорювали. Наприклад, він не підтримує деякі більш просунуті функції JSON, такі як обробка нульових значень або перетворення між CamelCase і PascalCase іменуванням. Він також не має вбудованої підтримки для десеріалізації масивів JSON.

висновок:

У цій статті ми досліджували два способи аналізу JSON у C#: використання Newtonsoft.Json бібліотеки та використання System.Text.Json бібліотека. Обидві бібліотеки забезпечують потужні можливості синтаксичного аналізу JSON і широко використовуються розробниками, які створюють програми на C#, які використовують дані JSON.