JSON Toolkit

JSON чи YAML

Головне: JSON розмежовує дужками, а YAML — відступами: машинам JSON, людям, що редагують конфігурацію, — YAML. Коментарі, якорі та структура кількох документів не виживають.

Початковий~4 хв читанняОпубліковано 2026-10-30Оновлено 2026-10-30
Коли використовувати JSON, а коли YAML

Коротко: використовуйте JSON для даних «машина-до-машини» й YAML для конфігурації, яку редагують люди; надавайте перевагу YAML, коли потрібні коментарі, багаторядковий текст чи якорі, і JSON, коли кожна мова мусить розібрати те саме навантаження без двозначності.

Пліч-о-пліч

{
  "server": {
    "host": "127.0.0.1",
    "port": 8080
  }
}
server:
  host: 127.0.0.1
  port: 8080

Та сама структура. YAML відкидає пунктуацію й отримує місце для коментаря.

Де вони різняться

JSON YAML
Структура Дужки й коми Відступи
Коментарі Немає Є
Рядки Подвійні лапки, потрібне екранування Зазвичай голі
Багаторядковий текст escape \n або масиви блокові скаляри `
Повторне використання Немає Якорі & і псевдоніми *
Кілька документів Обгорнути в масив Розділювачі ---
Швидкість розбору Швидка Повільніша, правила відступів
Двозначність Дуже низька no розбирається як булеве, відступ на одиницю

Останній рядок — справжня ціна YAML. У YAML 1.1 country: NO дає булеве false, а version: 1.0 може стати дробовим. У JSON неявного типізування немає взагалі.

Вибір

JSON: тіла запитів і відповідей, повідомлення сервіс-до-сервісу, JSON-стовпці в базах даних, усе, що мусить розбиратися ідентично в кожній мові.

YAML: екосистеми, де він типовий (Kubernetes, Ansible, GitHub Actions, Docker Compose); конфігурація, що потребує пояснень; файли, де домінує довгий текст, як-от сертифікати, скрипти чи SQL.

Що втрачає конвертація

YAML → JSON: усі коментарі, повторне використання якорів (розкрите в дублікати), усі документи, крім першого, і оригінальне написання дат і булевих значень.

JSON → YAML: розрізнення рядка й числа слабшає, тож "8080" і 8080 обидва потребують явних лапок, щоб лишатися безпечними.

Конвертуйте для міграцій і одноразового огляду. Не підтримуйте той самий файл у двох форматах як паралельні подання.

Часті питання

Як вирішити між JSON і YAML?

Почніть із того, хто читає й підтримує файл: використовуйте JSON, коли програма його генерує, він перетинає межі мов і мусить розбиратися передбачувано; використовуйте YAML, коли людина редагує його й потребує пояснень полів або довгого багаторядкового тексту. Вони конвертуються один в одного, але не підтримуйте ту саму конфігурацію в обох форматах довгостроково.

Чому YAML дає більше типової двозначності?

YAML має неявне типізування, тож значення на кшталт NO, on чи 1.0 можуть стати булевими, датами чи числами. У JSON лише явні типи: рядок мусить бути в лапках, що робить розбір передбачуванішим між мовами.

Чи мають коментарі й якорі виживати під час конвертації YAML у JSON?

Ні. Коментарі, якорі й кілька документів YAML не можна подати в JSON; якорі розкриваються в дубльований вміст. Якщо їх треба зберегти, використовуйте бібліотеку YAML з Document API замість циклу через обʼєкт.

Додаткове читання