CodeKitHub
Nástroje JSON

Konvertor JSON ↔ YAML

Naposledy aktualizované:

Pri prevode JSON na YAML sa z objektov stávajú odsadené bloky key: value a z polí zoznamy položiek začínajúcich pomlčkou `-` — opačný prevod zase premení skratky typov YAML (napríklad neuvedené true, null alebo čísla) späť na správne typy JSON. Tento nástroj vykonáva tento prevod v oboch smeroch, celý priamo vo vašom prehliadači.

Čo je tento nástroj?

YAML je obľúbený formát pre väčšinu moderných konfiguračných súborov — manifesty Kubernetes, Docker Compose, pipeline GitHub Actions a GitLab CI, Ansible playbooky — pretože je pre ľudí čitateľnejší než JSON pri ručnej úprave: väčšina kľúčov nepotrebuje úvodzovky, netreba riešiť chybné čiarky na konci a sú podporované komentáre. JSON je zase formát, ktorý väčšina API a programovacích jazykov natívne produkuje a spracováva.

Tento nástroj premosťuje oba formáty pomocou knižnice js-yaml, rozšírenej JavaScriptovej implementácie špecifikácie YAML, takže parsovanie a generovanie sa riadi rovnakými pravidlami ako u nástrojov znalých YAML, napríklad `kubectl` alebo CI runner.

Prevod JSON na YAML mení objekty na odsadené bloky key: value a polia na zoznamy položiek s predponou `-`. Prevod YAML na JSON robí opak a zároveň premieňa špecifické skratky typov YAML (napríklad neuvedené `true`, `null` alebo čísla) na ich správne typy JSON.

Prečo ho používať?

  • Obojsmerný — konvertujte JSON na YAML alebo YAML na JSON z tej istej obrazovky.
  • Parsovanie a generovanie podľa štandardu vďaka js-yaml, takže výstup zodpovedá tomu, čo očakávajú skutočné nástroje pre YAML (Kubernetes, CI systémy, Ansible).
  • Zvláda vnorené objekty a polia v akejkoľvek hĺbke, prevádza medzi odsadzovanou štruktúrou YAML a zloženými a hranatými zátvorkami JSON.
  • Správne interpretuje skratky typov YAML — neuvedené true/false, null a číselné hodnoty sa stanú správnymi typmi JSON namiesto reťazcov.
  • Kopírovanie do schránky alebo stiahnutie ako súbor .json alebo .yaml.
  • 100 % na strane klienta — nič, čo vložíte, sa nikam nenahráva.

Ako sa používa

  1. Vyberte smer: "JSON → YAML" alebo "YAML → JSON".
  2. Vložte svoje dáta do vstupného poľa.
  3. Kliknite na "Convert".
  4. Skontrolujte výsledok a potom ho skopírujte, alebo kliknite na "Download" a uložte súbor.

Príklad

Vstup

{"name":"Alice","roles":["admin","editor"],"active":true}

Výstup

name: Alice
roles:
  - admin
  - editor
active: true

Všimnite si, že pole sa stane zoznamom položiek s pomlčkou pod "roles" a booleovská hodnota zostáva neuvedená true, nie reťazec "true".

Praktické tipy

  • Píšete manifest Kubernetes alebo workflow GitHub Actions? Naskicujte štruktúru ako JSON (mnohé editory a AI nástroje generujú JSON spoľahlivejšie) a potom ju pre finálny súbor prevediete na YAML.
  • Ladíte konfiguráciu YAML, ktorá sa správa nesprávne? Preveďte ju na JSON, aby ste presne videli, ktoré hodnoty sú reťazce, čísla alebo booleovské hodnoty — flexibilná syntax YAML dokáže skryť nezrovnalosti typov, ktoré sú v JSON zjavné na prvý pohľad.
  • Ak váš JSON obsahuje kľúče so špeciálnymi znakmi alebo začínajúce číslom, js-yaml ich vo výstupe YAML automaticky uvedie v úvodzovkách, aby sa pri spätnom čítaní správne parsovali.

Prečo je premena typov najzradnejšou časťou YAML

Najväčšia výhoda YAML oproti JSON — že väčšina hodnôt nepotrebuje úvodzovky — je zároveň najväčším zdrojom nenápadných chýb. Klasickým príkladom je tzv. „nórsky problém“: v YAML 1.1 (ktorý používa mnoho starších parserov) sa neuvedená hodnota `no` interpretuje ako booleovská `false`, nie ako reťazec "no", čo v praxi rozbilo reálne konfigurácie kódov krajín obsahujúce Nórsko. Tento nástroj sa riadi špecifikáciou YAML 1.2, ktorá zúžila množinu neuvedených hodnôt považovaných za booleovské len na `true` a `false` (a ich variácie veľkosti písmen), čím sa tento druh prekvapení obmedzil — nie však úplne odstránil. Ak si nie ste istí, ako bude hodnota interpretovaná, najbezpečnejšie je uviesť ju v YAML výslovne v úvodzovkách.

Časté otázky

Zachovávajú sa komentáre YAML pri prevode na JSON a späť?

Nie. JSON nepozná koncept komentárov, takže pri prevode YAML na JSON sa všetky komentáre s # zo zdroja zahodia. Ak potom prevediete JSON späť na YAML, komentáre sa znovu neobjavia — je to vlastné obmedzenie formátu, nie chyba nástroja.

Ako nástroj spracúva kotvy a aliasy YAML (& a *)?

Použitý parser (js-yaml) rozlíši kotvy a aliasy ešte pred vytvorením JSON, takže súbor YAML, ktorý pomocou kotiev & a aliasov * opakovane používa jeden blok dát, sa prevedie na JSON s dátami plne rozpísanými na každom mieste, kde sa naň odkazuje.

Prečo sa moje číslo z YAML v JSON zobrazilo ako reťazec, alebo naopak?

Ak je hodnota v zdrojovom YAML uvedená v úvodzovkách (napr. version: "3.10"), zámerne sa berie ako reťazec — je to dôležité, pretože neuvedené čísla YAML ako 3.10 môžu pri parsovaní ako float stratiť koncovú nulu. Ak potrebujete, aby sa s hodnotou zaobchádzalo ako s textom, uveďte ju v zdrojovom YAML v úvodzovkách.

Môžem konvertovať súbor YAML s viacerými dokumentmi (oddelenými pomocou ---)?

Tento nástroj konvertuje vždy jeden dokument YAML naraz. Ak má váš súbor viacero dokumentov oddelených značkami ---, konvertujte ich postupne po jednom, alebo ak vám to vyhovuje, oddeľovače najskôr odstráňte a dokumenty zlúčte do jedného.

Nahrávajú sa moje dáta niekam?

Nie. Prevod prebieha úplne vo vašom prehliadači pomocou knižnice js-yaml — nič sa neposiela na server, čo umožňuje bezpečne pracovať aj so skutočnými konfiguračnými súbormi, vrátane tých s internými názvami hostiteľov alebo detailmi infraštruktúry.

Súvisiace nástroje