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

Превращайте JSON в чистый и удобный YAML для Kubernetes, Docker Compose, GitHub Actions или Ansible с полным контролем над отступами, стилем и кавычками.

Работает в браузереБез регистрацииНичего не загружается

Результат JSON

Как пользоваться: JSON в YAML

  1. Вставьте JSON в левое поле или откройте файл .json.
  2. YAML появляется справа по мере ввода.
  3. Выберите отступ (2 или 4 пробела) и стиль: блочный (один ключ на строку) или flow ({a: 1}/[x, y]) начиная с заданного уровня вложенности.
  4. Выберите стиль кавычек и отметьте Сортировать ключи, если нужен алфавитный порядок.
  5. Скопируйте или скачайте 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 читается одинаково в обеих версиях.

Часто задаваемые вопросы

Конвертация происходит без потерь?
Да. Любой JSON-документ является корректным YAML 1.2, а сгенерированный YAML разбирается обратно в точно такие же данные. Это можно проверить кнопкой Поменять.
Почему одни строки в кавычках, а другие нет?
В режиме Только при необходимости кавычки добавляются лишь там, где значение без них поменяло бы смысл, например 'yes', '123' или строки со спецсимволами. Всё остальное оставлено без кавычек для читаемости.
Можно ли добавить комментарии в результат?
В JSON нет комментариев, поэтому конвертировать нечего, но вы можете добавить # comments в YAML после копирования.
Меняется ли порядок ключей?
Нет. Ключи сохраняют порядок из JSON, если не отмечено Сортировать ключи.
Мои данные остаются приватными?
Да. Конвертер работает в браузере и не делает сетевых запросов с вашими данными.

Похожие инструменты