Конвертер 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, якщо не позначено Сортувати ключі.
Чи залишаються мої дані приватними?
Так. Конвертер працює в браузері й не робить мережевих запитів із вашими даними.

Схожі інструменти