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á

Výstupní JSON

Jak používat: JSON na YAML

  1. Vložte JSON do levého pole nebo otevřete soubor .json.
  2. YAML se vpravo zobrazuje během psaní.
  3. Zvolte odsazení (2 nebo 4 mezery) a styl: blokový (jeden klíč na řádek) nebo flow ({a: 1}/[x, y]) od zvolené úrovně vnoření.
  4. Vyberte styl uvozovek a zaškrtněte Seřadit klíče, pokud chcete abecední pořadí.
  5. 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: no hodnotu false, takže kód Norska NO zmizí. Totéž platí pro yes, on, off, y a n. YAML 1.2 považuje za logické hodnoty jen true a false.
  • Osmičková čísla: 0755 je 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:30 můž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ý?
Ano. Každý dokument JSON je platný YAML 1.2 a vygenerovaný YAML se rozparsuje zpět na přesně stejná data. Můžete to ověřit tlačítkem Prohodit.
Proč jsou některé řetězce v uvozovkách a jiné ne?
S volbou Jen když je třeba se uvozovky přidají jen tam, kde by hodnota bez nich změnila význam, například '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?
JSON komentáře nemá, takže není co převádět, ale po zkopírování můžete do YAML přidat # komentáře.
Mění se pořadí klíčů?
Ne. Klíče si zachovají pořadí z JSON, pokud nezaškrtnete Seřadit klíče.
Jsou moje data v soukromí?
Ano. Převodník běží ve vašem prohlížeči a s vaším vstupem neprovádí žádné síťové požadavky.

Související nástroje