Конвертер TOML в JSON для Cargo.toml, pyproject.toml и конфигов Rust
Читайте Cargo.toml, pyproject.toml или любой TOML-конфиг как JSON и записывайте JSON-объекты обратно в TOML-таблицы в браузере. Парсер обрабатывает даты, массивы таблиц и таблицы с точками; комментарии, порядок ключей и null не сохраняются.
Как работает этот конвертер TOML ↔ JSON
Создан для манифестов
Вставьте Cargo.toml или pyproject.toml и просмотрите вложенные таблицы и записи [[bin]] / [[bench]] как JSON-объекты и массивы.
Массивы таблиц работают в обе стороны
Блоки [[products]] становятся массивами объектов, а JSON-массив объектов одинаковой формы записывается обратно блоками [[table]]. Вложенные массивы остаются inline.
Даты и время разбираются как объекты Date
Дата-время, даты и время TOML становятся JavaScript Date, поэтому в JSON видны ISO-строки вроде 1979-05-27T07:32:00.000Z. При обратном преобразовании пишется строка в кавычках, а не нативная дата TOML.
Вложенные и точечные таблицы пересобираются
[tool.poetry] и [a.b] становятся вложенными объектами. Скалярные ключи выводятся раньше подтаблиц, поэтому исходный порядок не сохраняется.
Локальное преобразование с выбором файла
Выберите файлы .toml / .json или вставьте текст и скачайте результат. Ничего не отправляется, настроек отступов или сортировки нет.
Частые вопросы о TOML ↔ JSON
Поддерживает ли JSON → TOML null?
Нет. В TOML нет типа null, и сериализатор молча удаляет ключи со значением null, включая элементы null в массивах. Удалите или замените null перед преобразованием, иначе данные исчезнут без ошибки.
Как обрабатываются даты и время?
TOML → JSON разбирает дата-время, локальные даты и локальное время в объекты Date и показывает ISO-строки: 1979-05-27T07:32:00.000Z, 1979-05-27, 07:32:00.000. JSON → TOML считает эти строки обычным текстом и заключает в кавычки, поэтому они не возвращаются как нативные даты TOML. Без кавычек выводится только настоящий объект Date, полученный при разборе. Короткое время вроде 07:32 вызывает ошибку «Incomplete time» — секунды обязательны.
Сохраняются ли комментарии и порядок ключей?
Нет. Комментарии и пустые строки отбрасываются при разборе и не создаются заново. Порядок тоже меняется: сначала скалярные ключи, затем подтаблицы. Повторяющиеся ключи отклоняются с «Can't redefine existing key».
Как представлены массивы таблиц?
Блоки [[products]] становятся JSON-массивами объектов. В обратную сторону массив объектов записывается блоками [[products]], а вложенные массивы остаются inline. Корень JSON должен быть объектом: массив в корне вызывает ошибку «Can only stringify objects, not array».
Почему мой JSON-массив выдаёт «Array values can't have mixed types»?
Этот парсер требует однородные массивы TOML (правила TOML 0.5). Массив со смесью чисел и строк или объектов и скаляров вызывает ошибку. Разделите его на отдельные массивы или используйте таблицу.
А большие целые, NaN и пустые значения?
Целые больше 2^53 теряют точность и записываются с подчёркиваниями, например 12_345_678_901_234_567_000. NaN и Infinity становятся nan / inf. Пустой массив пишется [ ], пустой объект { }, а ключи undefined молча пропускаются.
Загружается ли мой файл и что происходит при ошибках?
Всё выполняется в браузере; файлы никогда не отправляются. Настроенного лимита нет, но преобразование синхронное, поэтому манифест в несколько MB может заблокировать страницу. Неверный TOML окрашивает левое поле в красный и показывает тост; неверный JSON — правое поле. Ни одно направление не даёт частичного результата.

