Převodník JSON na YAML
Převeďte JSON na čistý, lidsky čitelný YAML pro Kubernetes, Docker Compose, GitHub Actions nebo Ansible, s plnou kontrolou nad odsazením, stylem a uvozovkami.
Běží v prohlížečiBez registraceNic se neodesílá
Jak používat: JSON na YAML
- Vložte JSON do levého pole nebo otevřete soubor
.json. - YAML se vpravo zobrazuje během psaní.
- Zvolte odsazení (2 nebo 4 mezery) a styl: blokový (jeden klíč na řádek) nebo flow (
{a: 1}/[x, y]) od zvolené úrovně vnoření. - Vyberte styl uvozovek a zaškrtněte Seřadit klíče, pokud chcete abecední pořadí.
- Zkopírujte nebo stáhněte YAML. Neplatný JSON se nahlásí s řádkem, sloupcem a pravděpodobnou příčinou.
Proč převádět JSON na YAML?
JSON je ideální pro stroje a API, ale YAML se lidem lépe čte i upravuje: žádné složené závorky, žádné povinné uvozovky a podpora komentářů. Většina infrastrukturních nástrojů včetně Kubernetes, Helm, Docker Compose, GitHub Actions, GitLab CI a Ansible se konfiguruje v YAML, zatímco data, ze kterých vycházíte (výstup API, kubectl get -o json, stav Terraformu), jsou často JSON.
Blokový vs. flow styl
Blokový styl dává každý klíč a položku seznamu na vlastní řádek a je obvyklou volbou pro konfigurační soubory. Flow styl používá inline {} a [] jako JSON a udržuje krátké listové struktury kompaktní. „Flow od úrovně 2“ ponechá horní dvě úrovně v blokovém stylu a vše hlubší zapíše inline, což se hodí pro dlouhé seznamy malých objektů, například porty nebo proměnné prostředí.
Bezpečné uvozovky
Řetězce, které by parser YAML mohl špatně přečíst, se automaticky dají do uvozovek: hodnoty jako 'no', 'on', '1.0', 'null', řetězce začínající * nebo & a řetězce obsahující : . Zvolte Vždy jednoduché nebo Vždy dvojité, pokud vaše stylová příručka vyžaduje uvozovky u každého řetězce.
Záludnosti YAML 1.1 vs. 1.2
Tento převodník se řídí YAML 1.2, aktuální specifikací. Mnoho starších nástrojů (PyYAML, Psych v Ruby, některé verze Kubernetes a Ansible) stále čte YAML 1.1, kde platí jiná pravidla:
- Norský problém: v YAML 1.1 znamená
country: nohodnotufalse, takže kód NorskaNOzmizí. Totéž platí proyes,on,off,yan. YAML 1.2 považuje za logické hodnoty jentrueafalse. - Osmičková čísla:
0755je v 1.1 osmičkové, ale v 1.2 obyčejné desítkové číslo; 1.2 používá0o755. Pro jistotu dávejte práva souborů do uvozovek. - Šedesátková čísla: v 1.1 se
22:30může rozparsovat jako číslo 1350. Časy a mapování portů jako"8080:80"dávejte do uvozovek.
Směr JSON → YAML dává nejednoznačné řetězce ('no', 'on', 'y') do uvozovek automaticky, takže vytvořený YAML se v obou verzích čte stejně.
Časté dotazy
Je převod bezztrátový?
Proč jsou některé řetězce v uvozovkách a jiné ne?
'yes', '123' nebo řetězce se speciálními znaky. Vše ostatní zůstane bez uvozovek kvůli čitelnosti.Mohu do výstupu přidat komentáře?
# komentáře.