C# 12.02.2019 admin No comments

Работаем с JSON при помощи C#

В этой статье разберём сериализацию и десериализацию 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 c sharp

Десериализация 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.




1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (3 оценок, среднее: 5,00 из 5)
Загрузка...