Конвертер 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 після копіювання.