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

Превърнете JSON в чист, удобен за четене YAML за Kubernetes, Docker Compose, GitHub Actions или Ansible, с пълен контрол върху отстъпите, стила и кавичките.

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

JSON резултат

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

  1. Поставете JSON в лявото поле или отворете файл .json.
  2. YAML се появява вдясно, докато пишете.
  3. Изберете отстъпа (2 или 4 интервала) и стила: блоков (по един ключ на ред) или flow ({a: 1}/[x, y]) от дадено ниво на вложеност.
  4. Изберете стил на кавичките и отметнете Сортирай ключовете, ако искате азбучен ред.
  5. Копирайте или изтеглете YAML. Невалиден JSON се отчита с реда, колоната и вероятната причина.

Защо да преобразувате JSON в YAML?

JSON е идеален за машини и API, но YAML е по-лесен за четене и редактиране от хора: без фигурни скоби, без задължителни кавички и с поддръжка на коментари. Повечето инфраструктурни инструменти, включително Kubernetes, Helm, Docker Compose, GitHub Actions, GitLab CI и Ansible, се конфигурират с YAML, докато данните, от които тръгвате (изход от API, kubectl get -o json, Terraform state), често са JSON.

Блоков или flow стил

Блоковият стил поставя всеки ключ и елемент на списък на отделен ред и е обичайният избор за конфигурационни файлове. Flow стилът използва вградени {} и [], като JSON, и държи кратките крайни структури компактни. „Flow от ниво 2“ запазва горните две нива в блоков стил и вгражда всичко по-дълбоко, което работи добре за дълги списъци с малки обекти като портове или env променливи.

Безопасни кавички

Низове, които YAML парсер би могъл да разчете погрешно, се поставят в кавички автоматично: стойности като 'no', 'on', '1.0', 'null', низове, започващи с * или &, и низове, съдържащи : . Изберете Винаги единични или Винаги двойни, ако вашето ръководство за стил изисква всеки низ да е в кавички.

Капани при 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 се чете еднакво и в двете версии.

Често задавани въпроси

Преобразуването без загуби ли е?
Да. Всеки JSON документ е валиден YAML 1.2, а генерираният YAML се парсира обратно до абсолютно същите данни. Можете да проверите, като натиснете Размени.
Защо някои низове са в кавички, а други не?
При Само при нужда кавички се добавят само там, където стойност без кавички би променила смисъла си, например 'yes', '123' или низове със специални символи. Всичко останало остава без кавички за по-добра четимост.
Мога ли да добавя коментари в резултата?
JSON няма коментари, така че няма какво да се преобразува, но можете да добавите # comments в YAML, след като го копирате.
Променя ли се редът на ключовете?
Не. Ключовете запазват реда си от JSON, освен ако не отметнете Сортирай ключовете.
Поверителни ли са данните ми?
Да. Конверторът работи в браузъра ви и не прави мрежови заявки с вашия вход.

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