Mi ez az eszköz?
A YAML a legtöbb modern konfigurációs fájl kedvelt formátuma — Kubernetes manifesztek, Docker Compose, GitHub Actions és GitLab CI pipeline-ok, Ansible playbookok —, mert olvashatóbb, mint a JSON, ha kézzel szerkeszted a fájlt: a legtöbb kulcs köré nem kell idézőjel, nincsenek záró vesszők, amiket el lehet rontani, és támogatja a megjegyzéseket is. A JSON viszont az, amit a legtöbb API és programozási nyelv natívan termel és fogyaszt.
Ez az eszköz a kettő közötti hidat képezi a js-yaml segítségével, amely a YAML specifikáció széles körben használt JavaScript implementációja — így az elemzés és a generálás ugyanazokat a szabályokat követi, mint amilyeneket egy YAML-tudatos eszköz, például a `kubectl` vagy egy CI futtató alkalmazna.
A JSON-ból YAML-lá konverzió az objektumokat behúzott key: value blokkokká, a tömböket pedig `-` jellel kezdődő listaelemekké alakítja. A YAML-ből JSON-ná konverzió ennek fordítottja, és emellett feloldja a YAML-specifikus típus-rövidítéseket (mint az idézőjel nélküli `true`, `null`, vagy számok) a megfelelő JSON típusokká.
Miért érdemes használni?
- Kétirányú — JSON-t YAML-lá vagy YAML-t JSON-ná alakíthatsz ugyanazon a képernyőn.
- Szabványokon alapuló elemzés és generálás a js-yaml segítségével, így a kimenet megegyezik azzal, amit a valódi YAML eszközök (Kubernetes, CI rendszerek, Ansible) elvárnak.
- Bármilyen mélységű beágyazott objektumokat és tömböket kezel, konvertálva a YAML behúzás-alapú szerkezete és a JSON kapcsos zárójelei és szögletes zárójelei között.
- Helyesen értelmezi a YAML típus-rövidítéseit — az idézőjel nélküli true/false, null, és numerikus értékek megfelelő JSON típusokká válnak sztringek helyett.
- Vágólapra másolás vagy letöltés .json vagy .yaml fájlként.
- 100%-ban kliensoldali — semmi, amit beillesztesz, nem kerül feltöltésre sehova.
Használati útmutató
- Válassz irányt: „JSON → YAML” vagy „YAML → JSON”.
- Illeszd be az adataidat a beviteli mezőbe.
- Kattints a „Konvertálás” gombra.
- Nézd át az eredményt, majd másold ki, vagy kattints a „Letöltés” gombra a fájl mentéséhez.
Példa
Bemenet
{"name":"Alice","roles":["admin","editor"],"active":true}Kimenet
name: Alice
roles:
- admin
- editor
active: true
Figyeld meg, hogy a tömbből kötőjeles listaelemek lettek a „roles” alatt, a logikai érték pedig idézőjel nélküli true marad, nem pedig „true” sztring.
Gyakorlati tippek
- Kubernetes manifeszt vagy GitHub Actions workflow írásakor: vázold fel a szerkezetet JSON-ként (sok szerkesztő és AI eszköz megbízhatóbban generál JSON-t), majd alakítsd YAML-lá a végleges fájlhoz.
- Hibás YAML konfiguráció hibakeresésekor: alakítsd JSON-ná, hogy pontosan lásd, mely értékek sztringek, számok vagy logikai értékek — a YAML rugalmas szintaxisa elrejtheti a típusütközéseket, amelyek JSON-ban nyilvánvalóak.
- Ha a JSON-od speciális karaktereket tartalmazó, vagy számmal kezdődő kulcsokat tartalmaz, a js-yaml automatikusan idézőjelbe teszi őket a YAML kimenetben, hogy helyesen olvashatók legyenek vissza.
Miért a típuskényszerítés a YAML legmakacsabb része
A YAML legnagyobb használhatósági előnye a JSON-hoz képest — hogy a legtöbb érték köré nem kell idézőjel — egyben a rejtett hibák legnagyobb forrása is. A klasszikus példa a „Norvégia-probléma”: a YAML 1.1-ben (amit sok régebbi elemző használ) az idézőjel nélküli `no` érték a `false` logikai értékként értelmeződik, nem pedig a „no” sztringként, ami valós, Norvégiát listázó országkód-konfigurációkat tört el a gyakorlatban. Ez az eszköz a YAML 1.2 specifikációt követi, amely leszűkítette az idézőjel nélkül logikai értékként kezelt értékek körét kizárólag a `true` és `false` értékekre (és azok kis- és nagybetűs változataira), ezzel csökkentve — bár nem megszüntetve — ezt a fajta meglepetést. Ha bizonytalan vagy abban, hogy egy érték hogyan lesz típusba sorolva, a legbiztosabb megoldás, ha explicit módon idézőjelbe teszed a YAML-odban.
Gyakori kérdések
Megmaradnak a YAML megjegyzések JSON-ná alakításkor és vissza?
Nem. A JSON nem ismeri a megjegyzés fogalmát, így a YAML-ből JSON-ná konverzió eldob minden # megjegyzést a forrásból. Ha ezt a JSON-t visszaalakítod YAML-lá, a megjegyzések nem jelennek meg újra — ez a formátum belső korlátja, nem az eszköz hibája.
Hogyan kezeli az eszköz a YAML horgonyokat és aliasokat (& és *)?
A háttérben futó elemző (js-yaml) feloldja a horgonyokat és aliasokat, mielőtt JSON-t készít, így egy YAML fájl, amely & horgonyokat és * aliasokat használ egy adatblokk újrafelhasználásához, olyan JSON-ná alakul, amelyben az adat teljes egészében ki van fejtve minden helyen, ahol hivatkoznak rá.
Miért lett a YAML számomból sztring JSON-ban, vagy fordítva?
Ha egy érték idézőjelek között szerepel a YAML forrásban (pl. version: "3.10"), az szándékosan sztringként kezelendő — ennek azért van jelentősége, mert az idézőjel nélküli YAML számok, mint a 3.10, elveszíthetik a záró nullát, ha lebegőpontos számként értelmezik őket. Idézőjelezd az értéket a forrás YAML-ban, ha kifejezetten szövegként szeretnéd kezelni.
Átalakíthatok több dokumentumot tartalmazó YAML fájlt (--- jellel elválasztva)?
Ez az eszköz egyszerre egy YAML dokumentumot alakít át. Ha a fájlodban több dokumentum van --- jelölőkkel elválasztva, alakítsd át egyenként a részeket, vagy távolítsd el az elválasztókat, és egyesítsd őket egy dokumentumba előtte, ha ez megfelel a céljaidnak.
Feltöltésre kerül valahova az adatom?
Nem. A konverzió teljes egészében a böngésződben zajlik a js-yaml könyvtár segítségével — semmi nem kerül elküldésre egy szerverre, ami biztonságossá teszi a valódi konfigurációs fájlokkal való használatot is, beleértve azokat, amelyek belső hosztneveket vagy infrastruktúra-részleteket tartalmaznak.