Конвертор 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, така че всяко YAML съпоставяне (mapping) става JSON обект, всяка последователност става масив, а скаларите стават низове, числа, булеви стойности или null. Възможностите, които съществуват само в YAML, се разрешават при преобразуването:
- Коментарите (
# …) се премахват, защото JSON няма коментари. - Anchors и aliases (
&base,*base,<<: *base) се разгъват в пълни копия. - Времеви стойности като
2024-01-02стават ISO 8601 низове. - Многоредовите низове (блокове
|literal и>folded) стават обикновени низове с escape\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 списъци.