ДокументыИзображенияМедиаИнструменты PDF

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

Конвертируйте TOML в JSON бесплатно, прямо в браузере, без загрузки файлов.

{
  "title": "My Project",
  "version": "1.0.0",
  "features": [
    "async",
    "json"
  ],
  "dependencies": {
    "serde": "1.0",
    "tokio": "1.28"
  },
  "authors": [
    {
      "name": "John",
      "email": "john@example.com"
    }
  ]
}
Processed in your browser

TOML в JSON для инструментов, валидации и API

Валидация через JSON Schema

Валидируйте Cargo.toml, pyproject.toml или любой TOML-конфиг с помощью JSON Schema и ajv.

Программный доступ

Читайте конфигурации TOML из скриптов Python, Node.js или любого инструмента, понимающего JSON.

Отладка TOML

Визуализируйте структуру сложных TOML-файлов как эквивалентное дерево объектов JSON.

100% конфиденциально

Конвертация выполняется в браузере. Ваш конфиг и код не покидают устройство.

Три шага — никаких сложностей

1

Вставьте или загрузите TOML

Вставьте содержимое Cargo.toml, pyproject.toml или любого TOML-файла. Без регистрации.

2

Конвертация и валидация

TOML разбирается и валидируется, затем преобразуется в форматированный JSON в браузере.

3

Скопируйте или скачайте JSON

JSON готов для использования в API, инструментах, валидации JSON Schema или программной обработке.

Остались вопросы?

TOML отлично подходит для конфигурации, написанной людьми, но экосистема инструментов — API, скрипты, валидаторы, редакторы — говорит преимущественно на JSON. Конвертация TOML в JSON позволяет: валидировать структуру конфигурационного файла через JSON Schema (инструменты ajv или jsonschema), читать Cargo.toml или pyproject.toml из скриптов Python или Node.js с использованием JSON.parse, интегрировать данные конфигурации TOML в конвейеры, потребляющие JSON, мигрировать конфигурацию из системы на TOML в систему на JSON, и отлаживать структуру сложных TOML-файлов, просматривая эквивалентное представление объектов.

Таблицы TOML отображаются напрямую в объекты JSON. Секция [database] с ключ = значение становится объектом JSON { "database": { "ключ": "значение" } }. Точечная нотация [database.server] создаёт вложенность: { "database": { "server": {} } }. Встроенные таблицы { key = "value" } также преобразуются в объекты. Типы данных TOML имеют прямые эквиваленты в JSON: строки → строки, целые → числа, числа с плавающей точкой → числа, булевы → булевы, массивы → массивы. Даты и временные метки TOML (RFC 3339) не имеют нативного эквивалента в JSON и преобразуются в строки ISO 8601.

Массив таблиц — наиболее специфичная конструкция TOML без прямого эквивалента в JSON. Синтаксис [[products]] с несколькими записями создаёт массив объектов. В JSON это становится массивом под соответствующим ключом: { "products": [ { "name": "A" }, { "name": "B" } ] }. Именно этот паттерн используется в Cargo.toml для [[bin]] (несколько бинарных файлов в воркспейсе), [[example]] и [[test]]. Если ваш Cargo.toml имеет несколько записей [[bin]], конвертация в JSON создаст массив объектов под ключом bin.

В Python стандартная библиотека включает tomllib с Python 3.11 (PEP 680): import tomllib; with open('pyproject.toml', 'rb') as f: data = tomllib.load(f). Для более ранних версий используйте tomli (pip install tomli). В Node.js нет нативного TOML-парсера, но популярны @iarna/toml и smol-toml: const toml = require('@iarna/toml'); const data = toml.parse(fs.readFileSync('config.toml', 'utf8')). Если ваш CI/CD-конвейер должен читать значения из TOML, а парсер недоступен, предварительная конвертация в JSON позволяет использовать jq, JSON.parse или любой стандартный инструмент.

JSON Schema — наиболее широко используемый стандарт для валидации структуры данных (Draft 7, Draft 2019-09, Draft 2020-12, специфицированный на json-schema.org). У TOML нет эквивалентной нативной системы валидации. Однако, конвертировав TOML в JSON, его можно проверить любой реализацией JSON Schema: ajv (JavaScript), jsonschema (Python), networknt/json-schema-validator (Java) и другими. Это особенно полезно для валидации Cargo.toml или pyproject.toml в CI-конвейерах, проверки соответствия конфигурационных файлов ожидаемой схеме перед развёртыванием или документирования ожидаемой структуры собственного формата конфигурации.

Комментарии TOML (строки, начинающиеся с # или текст после # в строке данных) не имеют представления в JSON. JSON не поддерживает комментарии ни в каком виде — это была одна из главных причин выбора TOML вместо JSON для pyproject.toml. При конвертации TOML в JSON все комментарии отбрасываются. Если комментарии в конфигурационном файле содержат важную информацию (например, обоснование версий зависимостей или заметки о миграции), задокументируйте её в другом месте до конвертации — из итогового JSON её не восстановить.

Конвертировать TOML в JSON: Cargo.toml, pyproject.toml и валидация через JSON Schema

TOML (Tom's Obvious, Minimal Language, версия 1.0.0 опубликована в январе 2021 года Томом Престон-Вернером, сооснователем GitHub) — предпочитаемый людьми формат конфигурации в нескольких критических технологических экосистемах, однако его поддержка в инструментах автоматической обработки — REST API, CI/CD-конвейерах, валидаторах схем, редакторах с intellisense — значительно ниже, чем у JSON. Эта асимметрия создаёт постоянную практическую потребность: читать, трансформировать, валидировать или мигрировать TOML-файлы с помощью стандартных инструментов JSON-экосистемы. Cargo.toml, файл манифеста пакетов Rust, вероятно, является самым читаемым TOML-файлом в мире: каждый из более чем 140 000 крейтов на crates.io имеет его как обязательное требование. Программный доступ к метаданным Cargo.toml — частая потребность в конвейерах автоматизации: извлечение версии крейта в скрипте релиза, генерация документации зависимостей, анализ графа зависимостей воркспейса, проверка соответствия версий политикам безопасности или сравнение дерева зависимостей до и после обновления. Все эти операции значительно проще, когда исходный файл в JSON и может обрабатываться сотнями доступных инструментов.

pyproject.toml, стандартный конфигурационный файл проектов Python, введённый PEP 518 и расширенный PEP 517, 621 и 660, содержит структурированную информацию, критичную для инструментов: бэкенд сборки в [build-system], полные метаданные пакета в [project], конфигурацию каждого инструмента в секциях [tool.X]. Инструменты pip, build, ruff, mypy, pytest, black и isort читают pyproject.toml напрямую. Однако для кастомного скрипта, читающего сотни файлов pyproject.toml — например, для аудита версий зависимостей в монорепозитории или генерации отчёта о лицензиях — конвертация в JSON позволяет использовать json.load() или JSON.parse() без добавления TOML-зависимости. Структурная валидация также выигрывает от конвертации в JSON: JSON Schema — наиболее зрелый и широко поддерживаемый стандарт с высококачественными реализациями на всех основных языках, тогда как TOML Schema пока не существует как признанный стандарт.

Hugo, генератор статических сайтов на Go, широко использует TOML как для глобальной конфигурации сайта, так и для front matter отдельных страниц (разделитель +++). Если требуется мигрировать Hugo-сайт в другую систему управления контентом — Contentful, Strapi, Sanity.io — конвертация TOML в JSON является первым незаменимым шагом для программной обработки данных. Netlify использует netlify.toml для декларативного определения команды и директории сборки по контексту, пользовательских HTTP-заголовков, правил редиректов и перезаписи, serverless-функций и переменных окружения. Инструменты DevOps, обрабатывающие конфигурации развёртывания (Terraform, Pulumi, скрипты автоматизации), как правило, предпочитают JSON или YAML, что делает конвертацию netlify.toml → JSON полезной для интеграций инфраструктуры как кода. Наконец, конвертация TOML в JSON служит инструментом отладки: просмотр сложного TOML-файла как JSON-дерева объектов позволяет немедленно выявить структурные ошибки — некорректное вложение таблиц, значения неправильного типа, дублированные секции или неправильно оформленные массивы таблиц — до того, как они вызовут непредвиденное поведение в продакшене.