Конвертер YAML у JSON
Вставте YAML (маніфести Kubernetes, Docker Compose, конфіги CI) і миттєво отримайте чистий JSON. Помилки показують точний рядок із вказівником.
Працює в браузеріБез реєстраціїНічого не завантажується
Як користуватися: YAML у JSON
- Вставте YAML у ліве поле або відкрийте файл
.yaml/.yml. - JSON з'являється праворуч під час введення. Виберіть для результату 2 пробіли, 4 пробіли або табуляцію.
- Позначте Сортувати ключі, щоб упорядкувати ключі за абеткою. Це допомагає під час порівняння конфігів.
- Якщо YAML некоректний, рядок стану покаже рядок і стовпець, а проблемні рядки з'являться нижче з маркером
^. - Скопіюйте чи завантажте JSON або натисніть Поміняти, щоб конвертувати його назад у YAML.
Як YAML відображається в JSON
JSON — підмножина YAML 1.2, тому кожне відображення (mapping) YAML стає об'єктом JSON, кожна послідовність — масивом, а скаляри — рядками, числами, логічними значеннями або null. Можливості, що існують лише в YAML, розв'язуються під час конвертації:
- Коментарі (
# …) видаляються, бо в JSON немає коментарів. - Якорі й псевдоніми (
&base,*base,<<: *base) розгортаються в повні копії. - Мітки часу на кшталт
2024-01-02стають рядками ISO 8601. - Багаторядкові рядки (блоки
|literal і>folded) стають звичайними рядками з екрануванням\n.
YAML із кількох документів
Один файл може містити кілька YAML-документів, розділених ---, як заведено в маніфестах Kubernetes. У JSON відповідника немає, тому конвертер повертає JSON-масив з одним елементом на документ і повідомляє про це в рядку стану. Одиночний --- у кінці ігнорується.
Підступи 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 читається однаково в обох версіях.
Поширені запитання
Чи завантажується мій YAML кудись?
Чому мій YAML падає з помилкою «bad indentation»?
-) послідовно зміщено під батьківським ключем.Що відбувається з коментарями YAML?
Чому <code>no</code> залишилося рядком?
true/false. Старі парсери YAML 1.1 перетворили б no, yes, on і off на логічні значення («проблема Норвегії»).Чи можна конвертувати маніфест Kubernetes із кількома ресурсами?
---, стає елементом результуючого JSON-масиву, готового для jq або kubectl apply -f -, який теж приймає списки JSON.