В этой статье разберём сериализацию и десериализацию JSON при помощи библиотеки Newtonsoft.Json. Для этого создадим простое консольное приложение.
Библиотеку Newtonsoft.Json можно установить при помощи Nuget.
Сериализация JSON
Привожу ниже программный код:
using Newtonsoft.Json; using System; using System.Collections.Generic; namespace Json { class Website { public string Name { get; set; } public string Url { get; set; } public List <Article> Articles { get; set; } } class Article { public string Name { get; set; } public string Url { get; set; } } class Program { static void Main(string[] args) { // создаём объект класса Website и заполняем его Website progtaskRu = new Website(); progtaskRu.Name = "progtask.ru"; progtaskRu.Url = @"https://progtask.ru"; progtaskRu.Articles = new List <Article>(); progtaskRu.Articles.Add( new Article { Name = "Чтение и запись CSV в C#", Url = @"https://progtask.ru/csv-c-sharp/" }); progtaskRu.Articles.Add( new Article { Name = "Делаем Angular приложение десктопным. Angular + Electron", Url = "https://progtask.ru/angular-electron/" }); // сериализуем объект // при помощи Formatting.Indented указываем, что хотим переносить // каждую сущность на новую строку string json = JsonConvert.SerializeObject(progtaskRu, Formatting.Indented); // выводим полученный json на консоль Console.WriteLine(json); } } }
Результат работы:
Десериализация JSON
Json, который мы будем использовать:
{ "Name": "progtask.ru", "Url": "https://progtask.ru", "Articles": [ { "Name": "Чтение и запись CSV в C#", "Url": "https://progtask.ru/csv-c-sharp/" }, { "Name": "Делаем Angular приложение десктопным. Angular + Electron", "Url": "https://progtask.ru/angular-electron/" } ] }
Программный код:
using Newtonsoft.Json; using System.Collections.Generic; namespace Json { class Website { public string Name { get; set; } public string Url { get; set; } public List <Article> Articles { get; set; } } class Article { public string Name { get; set; } public string Url { get; set; } } class Program { static void Main(string[] args) { string json = @" { 'Name': 'progtask.ru', 'Url': 'https://progtask.ru', 'Articles': [ { 'Name': 'Чтение и запись CSV в C#', 'Url': 'https://progtask.ru/csv-c-sharp/' }, { 'Name': 'Делаем Angular приложение десктопным. Angular + Electron', 'Url': 'https://progtask.ru/angular-electron/' } ] }"; // десериализуем json в объект класса Website Website progtaskRu = JsonConvert.DeserializeObject<Website>(json); } } }
Для того, чтобы получить классы C# из JSON, вы можете воспользоваться сайтом json2csharp.