Перейти к содержанию

Конвертер TOML в JSON

Преобразуйте документ конфигурации TOML в JSON прямо в браузере.

Входные данные
Выходные данные

Конвертер TOML в JSON

Вставьте файл конфигурации TOML и получите чистый, структурированный объект JSON — формат, который фактически ожидает большинство скриптов, API и инструментов сборки. TOML используется по умолчанию для Cargo.toml в Rust, pyproject.toml в Python, Hugo и бесчисленных конфигураций приложений именно потому, что людям легко читать и писать, но в тот момент, когда этой конфигурации нужно достичь JavaScript, шага CI или вызова REST, JSON — это то, что нужно остальной части цепочки инструментов. Этот конвертер закрывает этот пробел без установки парсера или написания скрипта.

Синтаксический анализатор охватывает те части TOML 1.0, которые вы действительно встретите в реальной конфигурации: открытые ключи и ключи в кавычках, ключи с точками, такие как server.host, которые создают вложенные объекты, базовые строки с escape-символами и их многострочной формой в тройных кавычках, литеральные строки для путей, которые не должны экранироваться, целые числа в десятичном формате, hex, восьмеричные или двоичные с разделителями подчеркивания, числа с плавающей запятой, включая показатели степени и inf/nan, логические значения, смещение и локальное время, массивы, охватывающие несколько строк с завершающими запятыми, встроенные таблицы и заголовки [table] и [[array of table]] для повторяющихся блоков, таких как список серверов или зависимостей. Комментарии, начинающиеся с #, удаляются точно так, как их определяет TOML.

Выберите отступ JSON — два пробела, четыре пробела, табуляцию или одну мини-строку для вставки в другое место — и при необходимости отсортируйте ключи каждого объекта в алфавитном порядке, что значительно упрощает различие между двумя версиями сгенерированной конфигурации. Если у TOML есть синтаксическая проблема, инструмент называет точную строку и указывает, что не так (незамкнутая строка, отсутствующий знак равенства, дублирующийся ключ), вместо того, чтобы просто молча отказать.

Все работает локально в вашем браузере. Ничего из того, что вы вставляете, никуда не загружается, что имеет значение, когда в конфигурации содержатся хосты базы данных, конечные точки API или другие сведения, которые вы не хотите отправлять на сервер только для переформатирования файла.

FAQ

Какие части TOML это поддерживает?
Практическое подмножество версии 1.0: ключи (голые, в кавычках, с точками), базовые и литеральные строки, включая многострочные формы, целые числа в десятичном/hex/восьмеричном/двоичном формате, числа с плавающей запятой с показателями степени и inf/nan, логические значения, дата-время и даты, массивы, встроенные таблицы, заголовки [table] и [[array of table]] и # комментарии.
Что происходит с датами и датами?
В TOML есть реальные типы даты и времени, которых нет в JSON, поэтому они сохраняются точно так, как написано — как строки JSON, такие как «1979-05-27T07:32:00Z», — а не угадываются во что-то еще.
Как преобразуются блоки [[массив таблиц]]?
Каждый заголовок [[name]] добавляет новый объект к массиву под этим ключом, поэтому повторяющиеся блоки — список зависимостей, серверов или фруктов — становятся массивом объектов JSON в том порядке, в котором они появляются.
Что он делает, если в TOML есть ошибка?
Он сообщает номер строки и краткую причину — незамкнутую строку, отсутствующий знак «=», дважды определенный ключ — вместо возврата пустого или частично преобразованного результата.
Мой конфигурационный файл где-нибудь загружен?
Нет. Преобразование выполняется полностью в вашем браузере, и вставленный вами TOML никогда не покидает ваше устройство — это безопасно для конфигураций, содержащих учетные данные или внутренние имена хостов.