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

Вставьте TOML слева, получите JSON справа. Таблицы становятся объектами, массивы таблиц — массивами. Без загрузки.

  1. Вставьте свой TOML в текстовое поле слева.
  2. Нажмите «Преобразовать в JSON». Вывод — JSON-объект, сохраняющий вложенность таблиц.
  3. Скопируйте результат или скачайте как data.json.
  4. Значения date-time преобразуются в ISO 8601-строки; подчёркивания в числах удаляются.
Что это делает?

Парсит документ TOML 1.0 в объект JSON. Таблицы `[section]` становятся вложенными объектами; массивы таблиц `[[items]]` — JSON-массивами. Строки, целые (включая hex/octal/binary-литералы и подчёркивания группировки), числа с плавающей точкой, булевы, даты, date-time и времена — все отображаются на JSON-эквивалентные представления. Inline-таблицы и inline-массивы уплощаются тем же способом.

Пример

Вход TOML:

name = "Ada"
active = true

[address]
city = "London"

Выход JSON:

{
  "name": "Ada",
  "active": true,
  "address": {
    "city": "London"
  }
}

Типичные ошибки TOML и как их исправить

TOML в некоторых местах строже YAML и JSON. Шаблоны ниже покрывают большинство сбоев парсера.

  • Неэкранированные строки. `name = Ada` невалиден — голые значения интерпретируются как ключи/булевы/числа, а не строки. Используйте двойные кавычки: `name = "Ada"`.
  • Массивы смешанных типов (TOML 0.x). TOML 0.5 запрещал смешанные типы в массивах; TOML 1.0 их разрешает. @iarna/toml следует 1.0, поэтому `[1, "two"]` здесь валиден. Если ваш TOML должен ходить через инструменты 0.5, держите массивы однородными.
  • Переопределение таблицы. Определять `[a]` дважды — ошибка. Каждый заголовок таблицы должен встречаться максимум один раз. Объедините ключи в один блок `[a]`.
  • Date-time без часового пояса. `d = 2026-04-26T12:00:00` (без Z или смещения) — это «локальная date-time» — парсится, но у JSON нет понятия локальности. Вывод — та же строка с настенным временем, не UTC-момент. Добавьте `Z` для UTC: `d = 2026-04-26T12:00:00Z`.
  • Путаница с экранированием тройных кавычек. Базовые многострочные строки TOML используют `"""..."""` и обрабатывают экранирование; литеральные многострочные используют `\'\'\'...\'\'\'` и нет. Смешивание правил экранирования — самая частая ошибка многострочных строк.
  • Расширение inline-таблицы. Inline-таблица `point = {x=1, y=2}` закрыта и самодостаточна — нельзя позже написать `[point.z]` или `point.z = 3`. Чтобы расширять, используйте обычный синтаксис блока `[point]`.
Часто задаваемые вопросы

Как date-time представляются в JSON?

У JSON нет нативного типа date-time, поэтому значения становятся ISO 8601-строками. Date-time со смещением (`2026-04-26T12:00:00Z`) и локальные (`2026-04-26T12:00:00`) обе сериализуются буквально — но только форма со смещением однозначна в JSON.

Сохраняются ли подчёркивания в целых числах?

Нет — TOML позволяет `1_000_000` для удобочитаемости; парсер удаляет подчёркивания, и JSON-значение становится `1000000`. Группировка — чисто свойство исходного текста TOML.

Что происходит с TOML-комментариями?

Они удаляются. Комментарии TOML начинаются с `#`; у JSON нет синтаксиса комментариев, поэтому парсер их выбрасывает. Если нужны комментарии, понадобится другой промежуточный формат.

Поддерживаются ли массивы таблиц?

Да. Блоки `[[products]]`, повторяемые много раз, становятся JSON-массивом под ключом `products`. Каждый заголовок `[[products]]` создаёт новую запись массива; следующие строки ключ-значение наполняют её.

Можно ли конвертировать действительно большие TOML-файлы?

До примерно 30 МБ, прежде чем текстовое поле замедлится. Очень большие TOML-файлы редки — большинство конфигов сильно меньше 1 МБ.

Загружается ли мой TOML?

Нет. Всё работает в вашем браузере — данные парсятся JavaScript на этой странице и не отправляются ни на какой сервер.