Основы работы с 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#.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.