C#:
Работа с TOML
Как сделать:
Сначала установите парсер TOML, например, Tomlyn
. Используйте ваш менеджер пакетов:
dotnet add package Tomlyn
Затем разберите TOML файл:
using Tomlyn;
using Tomlyn.Model;
using System;
var tomlContent = @"
[owner]
name = 'Tom Preston-Werner'
dob = 1979-05-27T07:32:00Z";
var tomlTable = Toml.Parse(tomlContent).ToModel();
Console.WriteLine($"Владелец: {tomlTable["owner"]["name"]}");
// Вывод:
// Владелец: Tom Preston-Werner
Теперь создайте и запишите TOML:
using Tomlyn;
using Tomlyn.Syntax;
using System;
using System.IO;
var doc = new DocumentSyntax
{
Tables =
{
new TableSyntax("owner")
{
Items =
{
{ "name", "Tom Preston-Werner" },
{ "dob", "1979-05-27T07:32:00Z" }
}
}
}
};
var tomlString = doc.ToString();
File.WriteAllText("config.toml", tomlString);
Console.WriteLine("TOML записан в config.toml");
// Вывод:
// TOML записан в config.toml
Погружение:
TOML был создан Томом Престон-Вернером, сооснователем GitHub, примерно в 2013 году в качестве реакции на ограничения существующих форматов, таких как YAML и JSON, в настройках конфигурации. Он специально разработан для конфигов с сильным акцентом на простоту и однозначность.
Альтернативные форматы конфигурации включают YAML, JSON и XML. Однако TOML выделяется тем, что он более дружелюбный к пользователю, особенно для файлов конфигурации, где ручное редактирование является обычным делом. JSON, хотя и повсеместно используем, менее читаем для сложных конфигов, а XML является многословным. YAML, хотя и схож по читаемости, может стать сложным при интенсивном использовании пробелов и имеет риски безопасности с определенным содержанием.
С точки зрения реализации, TOML фокусируется на четком отображении в хеш-таблицу, обеспечивая предсказуемость извлечения данных. С выпуском версии 1.0.0 TOML утвердил свои спецификации, улучшив стабильность и поддержку инструментария.
Смотрите также:
- Официальный репозиторий и спецификация TOML на GitHub: github.com/toml-lang/toml
- Tomlyn, библиотека для .NET: github.com/xoofx/Tomlyn