Конвертор JSON към YAML
Превърнете JSON в чист, удобен за четене YAML за Kubernetes, Docker Compose, GitHub Actions или Ansible, с пълен контрол върху отстъпите, стила и кавичките.
Работи в браузъраБез регистрацияНищо не се качва
Как да използвате: JSON към YAML
- Поставете JSON в лявото поле или отворете файл
.json. - YAML се появява вдясно, докато пишете.
- Изберете отстъпа (2 или 4 интервала) и стила: блоков (по един ключ на ред) или flow (
{a: 1}/[x, y]) от дадено ниво на вложеност. - Изберете стил на кавичките и отметнете Сортирай ключовете, ако искате азбучен ред.
- Копирайте или изтеглете 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 се чете еднакво и в двете версии.
Често задавани въпроси
Преобразуването без загуби ли е?
Защо някои низове са в кавички, а други не?
'yes', '123' или низове със специални символи. Всичко останало остава без кавички за по-добра четимост.Мога ли да добавя коментари в резултата?
# comments в YAML, след като го копирате.