Конвертор YAML към JSON

Поставете YAML (Kubernetes манифести, Docker Compose, CI конфигурации) и получете чист JSON мигновено. Грешките показват точния ред с маркер.

Работи в браузъраБез регистрацияНищо не се качва

JSON резултат

Как да използвате: YAML към JSON

  1. Поставете YAML в лявото поле или отворете файл .yaml/.yml.
  2. JSON се появява вдясно, докато пишете. Изберете 2 интервала, 4 интервала или табулации за резултата.
  3. Отметнете Сортирай ключовете, за да подредите ключовете по азбучен ред. Това помага при сравняване на конфигурации.
  4. Ако YAML е невалиден, лентата за състояние показва реда и колоната, а проблемните редове се показват под нея с маркер ^.
  5. Копирайте или изтеглете 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 някъде?
Не. Парсването става в браузъра ви с библиотеката с отворен код js-yaml. Конфигурации, съдържащи тайни или вътрешни имена на хостове, никога не напускат компютъра ви.
Защо моят YAML се проваля с „bad indentation“?
Вложеността в YAML се определя от интервали, а табулациите не са позволени за отстъп. Уверете се, че ключовете на едно ниво са подравнени точно и елементите на списъка (-) са с последователен отстъп под родителския ключ.
Какво става с коментарите в YAML?
Те се премахват. JSON няма синтаксис за коментари, така че те не могат да бъдат пренесени. Обратното преобразуване в YAML няма да ги възстанови.
Защо <code>no</code> остана низ?
Инструментът следва YAML 1.2, където само true/false са булеви стойности. По-старите YAML 1.1 парсери биха превърнали no, yes, on и off в булеви стойности („норвежкият проблем“).
Мога ли да преобразувам Kubernetes манифест с няколко ресурса?
Да. Всеки ресурс, отделен с ---, става един елемент от изходния JSON масив, готов за jq или kubectl apply -f -, който също приема JSON списъци.

Свързани инструменти