Utilia

JSON–YAML konvertáló

Konvertálj JSON-t YAML-lé és YAML-t JSON-ná a böngésződben, horgonyok, összevonó kulcsok és többdokumentumos fájlok támogatásával. Semmi nem töltődik fel.

Konvertálás

Hogyan használd a JSON–YAML konvertálót

  1. Válaszd ki az irányt: JSON → YAML vagy YAML → JSON.
  2. Illeszd be az adatokat, vagy kattints a Fájl megnyitása gombra egy .json, .yaml vagy .yml fájl betöltéséhez (legfeljebb 10 MB).
  3. Válaszd ki a Behúzás módját (2 vagy 4 szóköz), és ha szeretnéd, a Kulcsok rendezése opciót ábécérendben.
  4. Kattints a Konvertálás gombra, vagy egyszerűen gépelj tovább: az eredmény automatikusan frissül. Ha a bemenet érvénytelen, a hibaüzenet megadja a probléma sorát és oszlopát.
  5. Másold ki vagy töltsd le az eredményt. Az Irány megfordítása visszaküldi a kimenetet a bemenetbe, hogy a másik irányba is átalakíthasd.

JSON és YAML: ugyanazok az adatok, más szintaxis

A YAML a gyakorlatban a JSON felülhalmaza: minden JSON-dokumentum olyan adatokat ír le, amelyeket a YAML ki tud fejezni, ráadásul a YAML könnyebb szintaxist ad, amelyet az embereknek egyszerűbb olvasni és szerkeszteni. Ezért íródnak a Kubernetes-manifesztek, a Docker Compose-fájlok, a GitHub Actions és GitLab CI futószalagok, az Ansible-playbookok és az OpenAPI-specifikációk általában YAML-ben, míg az API-k és a programok JSON-t cserélnek.

Ugyanazok az adatok mindkét formátumban:

{"name": "web", "ports": [80, 443], "env": {"DEBUG": false}}
name: web
ports:
  - 80
  - 443
env:
  DEBUG: false

JSON → YAML

A konvertáló blokkstílusú YAML-t ír: soronként egy kulcs, kötőjeles listák és behúzott beágyazott objektumok. A hosszú karakterláncokat soha nem töri meg, a többsoros karakterláncok pedig a szó szerinti | stílust használják, hogy a sortörések pontosan megmaradjanak. Azok a karakterláncok, amelyeket a YAML egyébként más típusként olvasna, idézőjelet kapnak: a "yes", az "1.0" vagy a "null" az oda-vissza átalakítás után is karakterlánc marad. A Kulcsok rendezése minden objektum kulcsait ábécérendbe rendezi, ami megkönnyíti két konfigurációs fájl összehasonlítását.

YAML → JSON

A YAML-t a YAML 1.2 core sémájával olvassa be az eszköz, ugyanazokkal a szabályokkal, amelyeket a legtöbb modern eszköz használ:

  • A true/false, a számok és a null (vagy ~) JSON-értékekké válnak; a yes, no, on és off karakterlánc marad, ahogy a YAML 1.2 specifikáció megköveteli.
  • A horgonyok és aliasok (&base, *base) kibontásra kerülnek, a CI-fájlokban gyakori összevonó kulcsok (<<: *base) pedig támogatottak.
  • A --- jelekkel elválasztott több dokumentumot tartalmazó fájl JSON-tömbbé válik, dokumentumonként egy elemmel, és egy üzenet megmondja, hányat egyesített.
  • A megjegyzések elmaradnak, mert a JSON-ban nincsenek megjegyzések.
  • A .inf és a .nan értéknek nincs JSON-megfelelője; az "Infinity" és a "NaN" karakterláncként íródnak ki.

A böngésződ védelmére a „billion laughs” típusú fájlokkal szemben, amelyekben néhány alias milliárdnyi értékre bomlik ki, az eszköz elutasítja azt a dokumentumot, amely egymillió értéknél többre bomlik ki.

Gyakori YAML-hibák

  • Tabulátor a behúzáshoz: a YAML csak szóközt enged.
  • Következetlen behúzás: ugyanazon lista vagy objektum elemeinek ugyanabban az oszlopban kell kezdődniük.
  • Hiányzó szóköz a kettőspont után: a key:value egyetlen karakterlánc, a key: value viszont kulcs-érték pár.
  • Idézőjel nélküli különleges karakterek: az az érték, amely @, visszaidézőjel, *, & vagy ! jellel kezdődik, vagy amely : vagy # szöveget tartalmaz, idézőjelet igényel.

Gyakori kérdések

Elküldésre kerül a fájlom egy szervernek?

Nem. A konvertálás a böngésződben fut, a konfigurációs fájljaid, titkaid vagy API-adataid soha nem hagyják el a számítógépedet.

Miért nem alakulnak logikai értékekké a „yes” és a „no”?

A YAML 1.2 óta csak a true és a false logikai érték. A régebbi YAML 1.1 elemzők a yes, no, on és off értéket is logikainak vették, ami a híres „Norvégia-problémát” okozta (az NO országkód hamisnak olvasódott). Ez az eszköz a YAML 1.2-t követi.

Megmaradnak a YAML-megjegyzések?

Nem. A JSON-ban nincsenek megjegyzések, ezért a YAML → JSON átalakításnál elvesznek. JSON → YAML átalakításkor utólag hozzáadhatsz megjegyzéseket az eredményhez.

Konvertálhatok több erőforrást tartalmazó Kubernetes-fájlt?

Igen. A --- jelekkel elválasztott minden erőforrás a JSON-tömb egy eleme lesz. Ha ezt a tömböt visszaalakítod YAML-lé, egyetlen, listát tartalmazó dokumentumot kapsz.

Megváltoztatja a konvertáló a kulcsok sorrendjét?

Nem, kivéve ha bejelölöd a Kulcsok rendezése opciót: a kulcsok a bemenetben megjelenő sorrendben maradnak. Az egyetlen kivétel magából a JavaScriptből ered: az egész számú kulcsok, például a "10" vagy a "2", előre kerülnek, növekvő sorrendben.