Co je tento nástroj?
YAML je oblíbený formát pro většinu moderních konfiguračních souborů — manifesty Kubernetes, Docker Compose, pipeline pro GitHub Actions a GitLab CI, Ansible playbooky — protože je pro lidi ručně upravující soubory čitelnější než JSON: u většiny klíčů nejsou potřeba uvozovky, nehrozí chybějící nebo přebytečná čárka na konci a jsou podporovány komentáře. JSON je zase formát, který přirozeně produkuje a konzumuje většina API a programovacích jazyků.
Tento nástroj propojuje oba formáty pomocí knihovny js-yaml, široce používané JavaScriptové implementace YAML specifikace, takže analýza i generování se řídí stejnými pravidly jako nástroje pracující s YAML, například `kubectl` nebo CI runner.
Při převodu JSON na YAML se objekty mění na odsazené bloky key: value a pole na položky seznamu uvozené pomlčkou `-`. Převod YAML na JSON dělá opak a navíc řeší YAML specifické zkratky typů (například nekvótované `true`, `null` nebo čísla) a převádí je na jejich správné typy v JSON.
Proč ho používat?
- Obousměrný — převádějte JSON na YAML nebo YAML na JSON na stejné obrazovce.
- Analýza a generování založené na standardu díky js-yaml, takže výstup odpovídá tomu, co očekávají reálné nástroje pro YAML (Kubernetes, CI systémy, Ansible).
- Zvládá vnořené objekty a pole v jakékoli hloubce a převádí mezi strukturou YAML založenou na odsazení a JSON se závorkami a hranatými závorkami.
- Správně interpretuje YAML zkratky typů — nekvótované true/false, null a číselné hodnoty se stanou správnými typy JSON místo řetězců.
- Kopírování do schránky nebo stažení jako soubor .json nebo .yaml.
- 100% na straně klienta — nic z toho, co vložíte, se nikam nenahrává.
Jak se používá
- Zvolte směr: „JSON → YAML“ nebo „YAML → JSON“.
- Vložte svá data do vstupního pole.
- Klikněte na „Convert“.
- Zkontrolujte výsledek a poté jej zkopírujte nebo klikněte na „Download“ pro uložení souboru.
Příklad
Vstup
{"name":"Alice","roles":["admin","editor"],"active":true}Výstup
name: Alice
roles:
- admin
- editor
active: true
Všimněte si, že pole se stává seznamem položek s pomlčkou pod „roles“ a booleovská hodnota zůstává nekvótovaná true, místo aby se stala řetězcem "true".
Praktické tipy
- Při psaní manifestu Kubernetes nebo workflow GitHub Actions: navrhněte strukturu jako JSON (mnoho editorů a AI nástrojů generuje JSON spolehlivěji) a poté ji převeďte na YAML pro finální soubor.
- Ladění YAML konfigurace, která se chová nesprávně: převeďte ji na JSON, abyste přesně viděli, které hodnoty jsou řetězce, čísla nebo boolean — flexibilní syntaxe YAML dokáže skrýt neshody typů, které jsou v JSON zjevné.
- Pokud váš JSON obsahuje klíče se speciálními znaky nebo začínající číslem, js-yaml je ve výstupním YAML automaticky uvozovkuje, aby se po zpětné analýze správně zpracovaly.
Proč je převod typů nejošemetnější částí YAML
Největší výhoda YAML oproti JSON — nepotřebuje uvozovky u většiny hodnot — je zároveň jeho největším zdrojem nenápadných chyb. Klasickým příkladem je tzv. „norský problém“: v YAML 1.1 (používaném mnoha staršími parsery) je nekvótovaná hodnota `no` interpretována jako boolean `false`, nikoli jako řetězec „no“, což v reálném světě rozbilo konfigurace obsahující kódy zemí včetně Norska. Tento nástroj se řídí specifikací YAML 1.2, která zúžila množinu nekvótovaných hodnot považovaných za boolean pouze na `true` a `false` (a jejich variace velikosti písmen), čímž tuto třídu překvapení omezuje — i když ji zcela neodstraňuje. Pokud si nejste jisti, jak bude hodnota typována, nejbezpečnější je uvést ji ve vašem YAML explicitně v uvozovkách.
Časté dotazy
Zachovávají se komentáře YAML při převodu na JSON a zpět?
Ne. JSON nemá koncept komentářů, takže při převodu YAML na JSON se veškeré komentáře # ze zdroje zahodí. Pokud tento JSON převedete zpět na YAML, komentáře se znovu neobjeví — jde o vlastní omezení formátu, ne o chybu nástroje.
Jak nástroj zachází s YAML kotvami a aliasy (& a *)?
Použitý parser (js-yaml) rozřeší kotvy a aliasy ještě před vytvořením JSON, takže YAML soubor používající kotvy & a aliasy * k opětovnému použití bloku dat se převede na JSON s tímto blokem dat plně rozepsaným na každém místě, kde je odkazován.
Proč se moje YAML číslo v JSON převedlo na řetězec, nebo naopak?
Pokud je hodnota ve zdrojovém YAML uvedena v uvozovkách (např. version: "3.10"), je záměrně považována za řetězec — to je důležité, protože nekvótovaná YAML čísla jako 3.10 mohou při analýze jako float ztratit koncovou nulu. Pokud konkrétně potřebujete, aby byla hodnota zpracována jako text, uveďte ji ve zdrojovém YAML v uvozovkách.
Mohu převést YAML soubor s více dokumenty (oddělenými pomocí ---)?
Tento nástroj převádí vždy jeden YAML dokument. Pokud má váš soubor více dokumentů oddělených značkami ---, převeďte sekce postupně po jedné, nebo pokud to vašemu případu použití vyhovuje, oddělovače nejprve odstraňte a dokumenty sloučte do jednoho.
Nahrávají se moje data někam?
Ne. Převod probíhá zcela ve vašem prohlížeči prostřednictvím knihovny js-yaml — nic se neodesílá na server, takže je bezpečné použít nástroj i pro reálné konfigurační soubory, včetně těch s interními hostname nebo detaily infrastruktury.