Конвертер JSON ↔ YAML ↔ TOML
Конвертируйте между JSON, YAML и TOML с автоопределением формата
Об этом инструменте
Конвертируйте между JSON, YAML и TOML в любом направлении. Исходный формат определяется автоматически при вставке — скобки намекают на JSON, двоеточия key: на YAML, [таблицы] на TOML — с ручным переключателем для неоднозначного ввода. Конвертация идёт через настоящий разбор, поэтому вывод гарантированно валиден, а не является построчным текстовым преобразованием.
У каждого формата свои сильные стороны: JSON для API и машинного обмена, YAML для редактируемых людьми конфигов (Kubernetes, CI-пайплайны), TOML для строго типизированных конфигурационных файлов (Cargo, pyproject). Перенос данных между ними вручную провоцирует ошибки отступов и кавычек, которые эта конвертация исключает.
Конвертер честен насчёт ограничений форматов: в TOML нет массивов верхнего уровня и нет null, и при конвертации таких документов он объясняет причину, а не молча теряет данные.
Частые вопросы
- Переживут ли комментарии конвертацию?
- Нет — в JSON нет синтаксиса комментариев, а конвертация идёт через разобранную структуру данных, которая комментарии не переносит. Конвертация YAML → JSON → YAML теряет комментарии безвозвратно; сохраняйте исходный файл, когда комментарии важны.
- Почему моё YAML «no» превратилось в false?
- YAML 1.1 трактует yes/no/on/off как булевы значения, и код страны NO знаменито становится false. Парсер здесь следует YAML 1.2 (только true/false), но файлы, написанные для старых парсеров, всё равно могут удивить. Берите в кавычки строки, похожие на булевы значения, числа или даты.
- Почему мой JSON не конвертируется в TOML?
- TOML требует таблицу (объект) на верхнем уровне — массивы или голые скаляры не могут быть TOML-документом — и в нём нет null. Перестройте данные (оберните массив в ключ, уберите null или задайте значения по умолчанию), и конвертация пройдёт.
- Является ли YAML надмножеством JSON?
- Практически да — YAML 1.2 разбирает почти все JSON-документы, поэтому вставка JSON в YAML-конфиг обычно работает. Обратное неверно: якоря, многострочные скаляры и теги YAML не имеют эквивалента в JSON и при конвертации разворачиваются или превращаются в строки.