Основы работы с JSON в C#

Основы работы с JSON в C#

Основы работы с 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#.

Источник

НЕТ КОММЕНТАРИЕВ

Оставить комментарий