Конвертер JSON в YAML
Превращайте JSON в чистый и удобный YAML для Kubernetes, Docker Compose, GitHub Actions или Ansible с полным контролем над отступами, стилем и кавычками.
Работает в браузереБез регистрацииНичего не загружается
Как пользоваться: JSON в YAML
- Вставьте JSON в левое поле или откройте файл
.json. - YAML появляется справа по мере ввода.
- Выберите отступ (2 или 4 пробела) и стиль: блочный (один ключ на строку) или flow (
{a: 1}/[x, y]) начиная с заданного уровня вложенности. - Выберите стиль кавычек и отметьте Сортировать ключи, если нужен алфавитный порядок.
- Скопируйте или скачайте YAML. Некорректный JSON сообщается со строкой, столбцом и вероятной причиной.
Зачем конвертировать JSON в YAML?
JSON идеален для машин и API, но YAML людям проще читать и редактировать: нет фигурных скобок, обязательных кавычек, зато есть комментарии. Большинство инфраструктурных инструментов, включая Kubernetes, Helm, Docker Compose, GitHub Actions, GitLab CI и Ansible, настраиваются в YAML, а исходные данные (вывод API, kubectl get -o json, состояние Terraform) часто в JSON.
Блочный или flow-стиль
Блочный стиль размещает каждый ключ и элемент списка на отдельной строке — это привычный выбор для конфигов. Flow-стиль использует встроенные {} и [], как JSON, и делает короткие конечные структуры компактными. «Flow с уровня 2» оставляет два верхних уровня в блочном стиле, а всё глубже записывает в строку — это удобно для длинных списков маленьких объектов, например портов или переменных окружения.
Безопасные кавычки
Строки, которые парсер YAML может понять неправильно, автоматически берутся в кавычки: значения вроде 'no', 'on', '1.0', 'null', строки, начинающиеся с * или &, и строки, содержащие : . Выберите Всегда одинарные или Всегда двойные, если ваш стайлгайд требует брать в кавычки каждую строку.
Подводные камни YAML 1.1 и 1.2
Этот конвертер следует YAML 1.2, актуальной спецификации. Многие старые инструменты (PyYAML, Psych в Ruby, некоторые версии Kubernetes и Ansible) всё ещё читают YAML 1.1, где правила отличаются:
- Проблема Норвегии: в YAML 1.1
country: noозначаетfalse, и код страны НорвегииNOисчезает. То же относится кyes,on,off,yиn. В YAML 1.2 логическими значениями считаются толькоtrueиfalse. - Восьмеричные числа:
0755— восьмеричное в 1.1, но обычное десятичное в 1.2, где используется0o755. Для надёжности берите права доступа к файлам в кавычки. - Шестидесятеричные числа: в 1.1
22:30может разобраться как число 1350. Берите в кавычки время и маппинги портов вроде"8080:80".
При конвертации JSON → YAML неоднозначные строки ('no', 'on', 'y') автоматически берутся в кавычки, поэтому полученный YAML читается одинаково в обеих версиях.
Часто задаваемые вопросы
Конвертация происходит без потерь?
Почему одни строки в кавычках, а другие нет?
'yes', '123' или строки со спецсимволами. Всё остальное оставлено без кавычек для читаемости.Можно ли добавить комментарии в результат?
# comments в YAML после копирования.