YAML to JSON: převod YAML na JSON online

Převeďte YAML na JSON i zpátky přímo v prohlížeči. Odsazení si vyberete a nástroj řekne, co se převodem ztratí, od komentářů po kotvy.

Režim
Odsazení

Vstupní YAML

Výsledek

Validní YAML
Sem se vypíše zkontrolovaný a zformátovaný výsledek.
0dokumentů·0klíčů·0úrovní zanoření·0řádků·0znaků

Jak převést YAML na JSON

  1. Vložte YAML do levého pole. Převod běží při psaní.
  2. Vpravo se objeví JSON. Odsazení si přepnete mezi dvěma a čtyřmi mezerami.
  3. Opačný směr přepnete režimem JSON do YAML.
  4. Výsledek zkopírujte tlačítkem nad výstupem.

Co se převodem ztratí

JSON je proti YAMLu chudší formát, takže část zápisu převod nepřežije. Za ztrátou stojí JSON, ne nástroj.

  • Komentáře. JSON je nezná a parser je zahodí už při čtení YAMLu.
  • Kotvy a odkazy. Rozvinou se. Sdílený blok se do výstupu vypíše tolikrát, kolikrát je použitý.
  • Víc dokumentů. Z dokumentů oddělených třemi pomlčkami vznikne pole, protože JSON víc kořenů v souboru nedovolí.
  • Datum a čas. YAML je rozpozná jako vlastní typ a v JSONu z nich bude řetězec v podobě ISO 8601 v UTC.

Převod JSON na YAML a odsazení

Opačný směr je bezpečnější, protože YAML umí všechno, co JSON. Řešíte jen čitelnost výsledku. Dvě mezery jsou konvence v Kubernetes i v GitHub Actions, čtyři se používají tam, kde je hluboké zanoření a potřebujete úrovně rozeznat na první pohled.

Prvky seznamu se odsazují pod svůj klíč. Některé nástroje je píšou na stejnou úroveň jako klíč a obojí je platné, jen se to nesmí v jednom souboru míchat.

Kdy se převod hodí

Nejčastěji při ladění konfigurací. Máte soubor pro Docker Compose nebo Kubernetes a potřebujete zjistit, jak ho parser skutečně přečetl. JSON to ukáže bez dvojznačností, protože nemá volitelné uvozovky ani implicitní typy.

Druhý případ je přenos dat do nástroje, který YAML neumí. Pak převedete konfiguraci na JSON, zpracujete ji a případně vrátíte zpět. Pokud chcete jen zkontrolovat syntaxi bez převodu, použijte YAML validator.

Časté otázky

Je každý JSON platný YAML?

Podle specifikace YAML 1.2 ano, protože YAML je nadmnožinou JSONu. V praxi na to ale nespoléhejte u knihoven, které stále pracují podle YAML 1.1. Tam se z hodnoty "y" nebo "no" v uvozovkách sice text udrží, ale bez uvozovek se z nich stane true a false.

Proč se mi z hodnoty 08 stal řetězec?

Číslo s úvodní nulou vypadá jako osmičkový zápis a osmička v něm není platná číslice. Parser proto hodnotu ponechá jako text. Týká se to i verzí a poštovních směrovacích čísel.

Zvládne nástroj velký soubor?

Ano, převod běží v prohlížeči a soubory o tisících řádcích zvládne bez potíží. Nikam se přitom neodesílá.