Що це за інструмент?
YAML — формат вибору для більшості сучасних конфігураційних файлів — маніфестів Kubernetes, Docker Compose, конвеєрів GitHub Actions і GitLab CI, playbook-ів Ansible — тому що він читабельніший за JSON для людей, які редагують файли вручну: не потрібні лапки навколо більшості ключів, немає зайвих ком у кінці, і підтримуються коментарі. JSON, тим часом, це те, що більшість API та мов програмування нативно виробляють і споживають.
Цей інструмент поєднує обидва формати за допомогою js-yaml, широко використовуваної реалізації специфікації YAML на JavaScript, тож розбір і генерація дотримуються тих самих правил, що застосував би інструмент, обізнаний з YAML, на кшталт `kubectl` чи виконавця CI.
Конвертація JSON у YAML перетворює об'єкти на блоки key: value з відступами, а масиви — на елементи списку з префіксом `-`. Конвертація YAML у JSON робить зворотне, а також перетворює специфічні для YAML скорочення типів (наприклад, незакавичені `true`, `null` чи числа) у їхні правильні типи JSON.
Навіщо його використовувати?
- Двонаправлено — конвертуйте JSON у YAML чи YAML у JSON з того самого екрана.
- Розбір і генерація на основі стандартів через js-yaml, тож результат відповідає тому, що очікують реальні інструменти YAML (Kubernetes, системи CI, Ansible).
- Обробляє вкладені об'єкти та масиви на будь-якій глибині, конвертуючи між структурою YAML на основі відступів і фігурними/квадратними дужками JSON.
- Правильно інтерпретує скорочення типів YAML — незакавичені true/false, null і числові значення стають своїми правильними типами JSON, а не рядками.
- Копіювання в буфер обміну чи завантаження як файлу .json чи .yaml.
- 100% на боці клієнта — те, що ви вставляєте, нікуди не завантажується.
Як користуватися
- Оберіть напрямок: "JSON → YAML" чи "YAML → JSON".
- Вставте свої дані в поле вводу.
- Натисніть "Конвертувати".
- Перегляньте результат, потім скопіюйте його або натисніть "Завантажити", щоб зберегти файл.
Приклад
Введення
{"name":"Alice","roles":["admin","editor"],"active":true}Результат
name: Alice
roles:
- admin
- editor
active: true
Зверніть увагу, як масив стає списком елементів із рискою під "roles", а булеве значення залишається незакавиченим true, а не стає рядком "true".
Практичні поради
- Написання маніфесту Kubernetes чи робочого процесу GitHub Actions: спочатку накидайте структуру як JSON (багато редакторів та інструментів ШІ генерують JSON надійніше), потім конвертуйте у YAML для фінального файлу.
- Налагодження конфігурації YAML, яка неправильно поводиться: конвертуйте її в JSON, щоб точно побачити, які значення є рядками, числами чи булевими — гнучкий синтаксис YAML може приховувати невідповідності типів, які очевидні в JSON.
- Якщо ваш JSON містить ключі зі спеціальними символами чи такі, що починаються з числа, js-yaml автоматично закавичить їх у виводі YAML, щоб вони правильно розбиралися назад.
Чому приведення типів — найскладніша частина YAML
Найбільша перевага зручності YAML над JSON — відсутність необхідності в лапках навколо більшості значень — водночас є найбільшим джерелом тонких помилок. Класичний приклад — "проблема Норвегії": у YAML 1.1 (яку використовують багато старіших парсерів) незакавичене значення `no` інтерпретується як булеве `false`, а не рядок "no", що зламало реальні конфігурації з кодами країн, у яких вказана Норвегія. Цей інструмент дотримується специфікації YAML 1.2, яка звузила набір незакавичених значень, що трактуються як булеві, лише до `true` і `false` (та їхніх варіантів регістру), зменшуючи — хоча й не усуваючи повністю — цей клас несподіванок. Коли є сумніви щодо того, як буде типізовано значення, найбезпечніший вибір — явно закавичити його у вашому YAML.
Часті запитання
Чи зберігаються коментарі YAML при конвертації в JSON і назад?
Ні. У JSON немає поняття коментарів, тож конвертація YAML у JSON відкидає будь-які коментарі # у джерелі. Якщо ви конвертуєте цей JSON назад у YAML, коментарі не з'являться знову — це властиве обмеження формату, а не помилка інструмента.
Як інструмент обробляє якорі та псевдоніми YAML (& і *)?
Базовий парсер (js-yaml) розв'язує якорі та псевдоніми перед створенням JSON, тож файл YAML, що використовує якорі & і псевдоніми * для повторного використання блоку даних, конвертується в JSON із повністю розгорнутими даними в кожному місці, де на них є посилання.
Чому моє число YAML перетворилося на рядок у JSON, чи навпаки?
Якщо значення закавичене в джерелі YAML (наприклад, version: "3.10"), воно навмисно розглядається як рядок — це важливо, тому що незакавичені числа YAML на кшталт 3.10 можуть втратити кінцевий нуль при розборі як число з плаваючою комою. Закавичте значення в початковому YAML, якщо вам конкретно потрібно, щоб воно оброблялося як текст.
Чи можу я конвертувати файл YAML з кількома документами (розділеними ---)?
Цей інструмент конвертує один документ YAML за раз. Якщо у вашому файлі кілька документів, розділених маркерами ---, конвертуйте один розділ за раз, або видаліть роздільники та об'єднайте їх в один документ спочатку, якщо це підходить для вашого випадку використання.
Чи завантажуються мої дані кудись?
Ні. Конвертація виконується повністю у вашому браузері через бібліотеку js-yaml — нічого не надсилається на сервер, що робить безпечним використання з реальними конфігураційними файлами, включно з тими, що містять внутрішні імена хостів чи деталі інфраструктури.