Конвертер JSON в YAML
Превратите JSON в читаемый YAML за один шаг.
Работает в браузере. То, что вы вводите, никуда не отправляется.
- Сохраняет вложенность и типы
- Конвертирует по мере ввода
- Ничего не загружается
Как конвертировать JSON в YAML
- Вставьте или загрузите свой JSON.
- YAML появляется по мере ввода.
- Скопируйте его или скачайте файл .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?
Всё значение заключается в кавычки, ведь двоеточие без кавычек, за которым следует пробел, иначе выглядело бы как начало нового ключа.