Основы работы с JSON в C#
 
			JSON один из самых распространенных форматов хранения и обмена данными в сети Интернет. Поэтому и в языке C# есть средства для работы с форматом JSON.
Для примера далее Вам необходимо создать новый проект типа "Консольное приложение (.NET Framework)" в Visual Studio 2019 Community Edition. Далее в Обозревателе решений нажать правую кнопку мыши на названии решения. Откроется контекстное меню, в котором надо выбрать пункт Управление пакетами Nuget и в открывшемся окне во вкладке "Обзор" ввести название пакета System.Text.Json. Далее просто установить (в правой части экрана - кнопка установить) этот пакет следуя инструкциям установщика.
Далее я покажу Вам код, который будет расположен в файле Program.cs.
using System;
using System.Collections.Generic;
using System.Text.Json; // установленный пакет для работы с JSON
namespace AppSettingsJSONConsole
{
    // класс, который хранит настройки приложения
    // вы можете добавить любое количество нужных вам полей
    class AppSettings
    {
        // основное соединение с базой данных
        public string MasterConnection { get; set; }
        // вторичные соединения
        public Dictionary<string, string> ConnectionStrings { get; set; }
        // дополнительне сервисы
        public string[] Services { get; set; }
    }
    // класс, который содержит метод Main - точку входа в приложение
    class Program
    {
        // метод, который создает класс настроек и конвертирует (сериализует) его в формат JSON
        // это строковое представление потом можно сохранить в файл или куда-либо еще
        static string Serialize(AppSettings settings)
        {
            // настройки для конвертера - в данном случает выходная строка будет иметь удобный
            // для чтения формат - за это отвечает опция WriteIndented
            var serializerOptions = new JsonSerializerOptions()
            {
                WriteIndented = true,
            };
            // непосредственно сама реализация
            var json = JsonSerializer.Serialize(settings, serializerOptions);
            return json;
        }
        // преобразует JSON-строку (дессериализует) в объект класса AppSettings
        static AppSettings Deserialize(string json)
        {
            // преобразуем в объект класса AppSettings
            var appSettings = JsonSerializer.Deserialize<AppSettings>(json);
            return appSettings;
        }
        // точка входа в приложение
        static void Main(string[] args)
        {
            // Пример #1
            // создаем класс с настройками нашего приложения
            var settingsObj = new AppSettings()
            {
                MasterConnection = "Master Connection",
                ConnectionStrings = new Dictionary<string, string>()
                {
                    { "mysql1", "mysql1 connection" },
                    { "mysql2", "mysql2 connection" },
                    { "sqlserver1", "sqlserver1 connection" }
                },
                Services = new string[]
                {
                    "https://myrusakov.ru",
                    "https://src.myrusakov.ru"
                }
            };
            // преобразуем в строку
            var jsonString = Serialize(settingsObj);
            // выводим в консоль
            Console.WriteLine(jsonString);
            // Пример #1
            // тестоая строка, например, прочитанная из файла settings.json
            string json = @"
                {
                    ""MasterConnection"": ""Master Connection"",
                    ""ConnectionStrings"": {
                        ""mysql1"": ""mysql1 connection"",
                        ""mysql2"": ""mysql2 connection"",
                        ""sqlserver1"": ""sqlserver1 connection""
                    },
                    ""Services"": [
                        ""https://myrusakov.ru"",
                        ""https://src.myrusakov.ru""
                    ]
                }
            ";
            // получаем объект настроек
            var settings = Deserialize(json);
            // тестируем в консоли
            Console.WriteLine($"Master Connection: {settings.MasterConnection}");
            Console.WriteLine($"MySQL1 Connection:  {settings.ConnectionStrings["mysql1"]}");
            Console.WriteLine($"Services: {settings.Services[0]}");
        }
    }
}
Вот таким образом, можно организовать сохранение и обратное извлечение настроек с помощью формата JSON в C#.
- 
					Создано 05.08.2021 11:59:08  
- 
					 Михаил Русаков Михаил Русаков
 
			 
			 
		 
				 
			 
				 
				 
				 
				
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.