CodeKitHub
Nástroje JSON

Převodník JSON ↔ YAML

Naposledy aktualizováno:

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 `-` — opačný převod zase řeší YAML zkratky typů, jako je nekvótované true, null nebo čísla, a mění je zpět na správné typy JSON. Tento nástroj provádí tento převod v obou směrech, zcela ve vašem prohlížeči.

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á

  1. Zvolte směr: „JSON → YAML“ nebo „YAML → JSON“.
  2. Vložte svá data do vstupního pole.
  3. Klikněte na „Convert“.
  4. 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.

Související nástroje