Конвертируйте JSON в YAML формат
Коротко об инструменте
YAML читают Docker Compose, Kubernetes, GitHub Actions и Ansible, а данные приходят почти всегда в JSON — из API или из экспорта настроек. Вставьте объект или массив в поле «JSON на входе», нажмите «Конвертировать» и получите тот же набор данных отступами, без фигурных скобок и кавычек вокруг ключей. Разбор выполняет js-yaml прямо во вкладке, поэтому в поле можно положить и рабочий конфиг. Смотрите также: вернуть YAML-конфиг в JSON, найти пропущенную запятую в исходном JSON, тот же объект в формате XML.
Два пробела на уровень вложенности — это значение по умолчанию в js-yaml и общепринятый стиль для docker-compose.yml и манифестов Kubernetes. Табуляция не используется вовсе: спецификация YAML её запрещает, поэтому конвертер её и не выдаст. Если в вашем проекте принят отступ в четыре пробела, поправьте результат уже в редакторе — здесь ширина отступа не настраивается.
Да. Объект JSON разбирается в том порядке, в котором ключи записаны, и в YAML они выводятся в той же последовательности. Исключение — числовые ключи вида "1", "2": движок JavaScript поднимает их в начало объекта, и в YAML они окажутся выше остальных. Если порядок критичен, замените такие ключи на строковые с префиксом.
Кириллица переносится как есть, без экранирования в \u-последовательности — YAML работает в UTF-8. Строку возьмёт в кавычки, только если она начинается со спецсимвола, содержит двоеточие с пробелом или может быть прочитана как число либо как yes/no. Проверьте кодировку файла в редакторе: если он сохранён в windows-1251, кириллица в нём испортится уже после скачивания.
Жёсткого лимита на размер нет, ограничение — память вкладки. Файлы до нескольких мегабайт конвертируются за доли секунды, но на десятках мегабайт вкладка заметно подвиснет на время разбора, особенно в мобильном браузере. Для дампов такого размера удобнее локальный yq или скрипт на Python.
Почти всегда причина в исходных данных: одинарные кавычки вместо двойных, запятая после последнего элемента, комментарий // внутри JSON или обрезанный при копировании хвост. JSON не допускает ничего из перечисленного. Откройте фрагмент в валидаторе JSON, исправьте первую же ошибку и вставьте текст заново.
Для обратного направления есть отдельная страница «YAML в JSON»: она использует ту же библиотеку и даёт форматированный JSON. Обратный проход полезен для проверки — если после двух конвертаций структура совпала с исходной, значит при переводе в YAML ничего не потерялось.
Нет. Разбор и вывод целиком выполняет скрипт js-yaml, загруженный в страницу; никаких запросов с содержимым поля страница не делает. Можно открыть вкладку «Сеть» в инструментах разработчика и убедиться, что после нажатия кнопки новых запросов не появляется.
До: {"image": "nginx:1.25", "ports": ["80:80", "443:443"], "environment": {"TZ": "Europe/Moscow"}} После: image: nginx:1.25 ports: - '80:80' - '443:443' environment: TZ: Europe/Moscow
До: [{"name": "build", "run": "npm ci"}, {"name": "test", "run": "npm test"}] После: - name: build run: npm ci - name: test run: npm test
Оценка и фидбек помогают понять, что улучшать дальше.