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

Превратите JSON в читаемый YAML за один шаг.

Работает в браузере. То, что вы вводите, никуда не отправляется.

Как конвертировать JSON в YAML

  1. Вставьте или загрузите свой JSON.
  2. YAML появляется по мере ввода.
  3. Скопируйте его или скачайте файл .yaml.

Что меняется при переходе от JSON к YAML

  • Фигурные скобки и запятые исчезают. Структуру вместо этого показывают отступы.
  • Имена свойств теряют кавычки, если только имя не содержит символ, который YAML требует заключить в кавычки, например двоеточие.
  • Массив JSON становится списком строк с дефисом, по одной на элемент, с отступом под своим ключом.
  • true, false и null записываются одним и тем же словом в обоих форматах.

Почему некоторые значения YAML сохраняют кавычки

Значение JSONЗаписывается какПричина
"007"'007'Без кавычек 007 прочиталось бы как число 7
"yes"'yes'Некоторые парсеры YAML считают yes или no без кавычек логическим значением
"null"'null'Без кавычек null разобралось бы как значение null
"2024-01-01"'2024-01-01'Даты без кавычек в некоторых парсерах разбираются как отдельный тип даты

Где встречается YAML

  • Файлы Docker Compose
  • Манифесты Kubernetes
  • Файлы workflow GitHub Actions
  • Плейбуки Ansible

Где помогает JSON в YAML

  • Превращение экспортированного файла настроек в формат конфигурации, который реально читает ваш инструмент развёртывания.
  • Упрощение беглого просмотра ответа API перед сравнением двух его версий.
  • Черновик файла values для Helm-чарта или похожего инструмента на основе существующих данных JSON.

Частые вопросы о JSON в YAML

Зачем использовать YAML вместо JSON?

YAML убирает большинство скобок и кавычек и вместо этого использует отступы, поэтому конфигурационные файлы для таких инструментов, как Docker Compose, Kubernetes и GitHub Actions, легче читать и редактировать вручную.

Почему некоторые значения заключены в кавычки?

Строки, которые YAML иначе прочитал бы как что-то другое, сохраняют кавычки. Например, '007' остаётся текстом вместо превращения в число 7, а 'yes' остаётся строкой.

Можно добавить комментарии в YAML?

В JSON нет комментариев, поэтому переносить нечего. Вы можете добавить свои собственные с помощью # после конвертации.

Какой диалект YAML это создаёт?

Стандартный YAML 1.2, созданный библиотекой js-yaml, той же, что используют многие сборочные инструменты Node.js для чтения и записи конфигурационных файлов.

Сохраняется ли порядок ключей?

Да. Ключи записываются в том же порядке, в котором они идут в объекте JSON, поэтому сравнение двух версий остаётся простым.

Можно конвертировать JSON-массив на верхнем уровне?

Да. Массив верхнего уровня становится последовательностью YAML из элементов с дефисом вместо отображения ключей и значений.

Обрабатываются ли глубоко вложенные объекты и массивы объектов?

Да. Вложенность любой глубины конвертируется корректно, каждый уровень с отступом на 2 пробела больше родительского, что является стилем js-yaml по умолчанию.

Что происходит со значением, содержащим двоеточие, например временем или URL?

Всё значение заключается в кавычки, ведь двоеточие без кавычек, за которым следует пробел, иначе выглядело бы как начало нового ключа.

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