DEV

Конвертер YAML у JSON та назад онлайн

YAML vs JSON: коли що використовувати

YAML (YAML Ain't Markup Language) розроблений для конфігураційних файлів, де пріоритет — читабельність для людини. Немає дужок і лапок, коментарі підтримуються (#), складні рядки легко записувати. JSON — для обміну даними між системами: суворий синтаксис, краща підтримка парсерами, немає неоднозначностей. Docker Compose, GitHub Actions, Kubernetes — YAML. REST API — JSON.

Синтаксис YAML

Відступи (пробіли, не табуляції) визначають структуру. key: value для пар. - item для списків. | для багаторядкових рядків із збереженням переносів. > для складених рядків. true/false/null автоматично перетворюються на булеві/null. Рядки зазвичай не потребують лапок, але для спецсимволів вони необхідні.

Пастки YAML

«Norway problem»: NO у YAML інтерпретується як false! Аналогічно yes, on, off. Вирішення: взяти в лапки. Табуляції замість пробілів спричиняють помилки. Незначна різниця у відступах може повністю змінити структуру. YAML 1.2 вирішує багато цих проблем, але підтримка парсерами неоднорідна.

Мультидокументи YAML

YAML підтримує кілька документів в одному файлі, розділених ---. Kubernetes-маніфести часто містять кілька ресурсів в одному файлі саме так. При конвертації в JSON мультидокумент перетворюється на масив. Наш конвертер обробляє обидва варіанти.