JSON → YAML konverter

Alakítsd a JSON-t tiszta, emberbarát YAML-lé Kuberneteshez, Docker Compose-hoz, GitHub Actionshöz vagy Ansible-hez, teljes kontrollal a behúzás, a stílus és az idézőjelek felett.

A böngésződben futNincs regisztrációNincs feltöltés

JSON kimenet

Hogyan használd: JSON → YAML

  1. Illessz be JSON-t a bal oldali mezőbe, vagy nyiss meg egy .json fájlt.
  2. A YAML gépelés közben megjelenik jobb oldalon.
  3. Válaszd ki a behúzást (2 vagy 4 szóköz) és a stílust: blokk (soronként egy kulcs) vagy flow ({a: 1}/[x, y]) egy adott beágyazási szinttől.
  4. Válassz idézési stílust, és jelöld be a Kulcsok rendezése opciót, ha ábécérendet szeretnél.
  5. Másold ki vagy töltsd le a YAML-t. Az érvénytelen JSON-t sorral, oszloppal és a valószínű okkal jelezzük.

Miért érdemes JSON-t YAML-re alakítani?

A JSON ideális gépeknek és API-knak, a YAML-t viszont az emberek könnyebben olvassák és szerkesztik: nincsenek kapcsos zárójelek, nem kötelezőek az idézőjelek, és kommentek is írhatók bele. A legtöbb infrastruktúra-eszköz, köztük a Kubernetes, a Helm, a Docker Compose, a GitHub Actions, a GitLab CI és az Ansible, YAML-ben konfigurálható, míg a kiinduló adat (API-kimenet, kubectl get -o json, Terraform state) gyakran JSON.

Blokk vagy flow stílus

A blokk stílus minden kulcsot és listaelemet külön sorba tesz, és ez a megszokott választás konfigurációs fájlokhoz. A flow stílus a JSON-hoz hasonlóan inline {} és [] jelölést használ, és tömören tartja a rövid levélstruktúrákat. A „Flow a 2. szinttől” a felső két szintet blokk stílusban tartja, a mélyebbeket pedig egy sorba írja, ami jól működik kis objektumok hosszú listáinál, például portoknál vagy környezeti változóknál.

Biztonságos idézés

Azokat a stringeket, amelyeket egy YAML-feldolgozó félreérthetne, automatikusan idézőjelbe tesszük: az olyan értékeket, mint a 'no', 'on', '1.0', 'null', a * vagy & jellel kezdődő, valamint a : részt tartalmazó stringeket. Válaszd a Mindig szimpla vagy a Mindig dupla opciót, ha a stílusútmutatód minden string idézését megköveteli.

YAML 1.1 és 1.2 buktatók

Ez a konverter a jelenlegi specifikációt, a YAML 1.2-t követi. Sok régebbi eszköz (PyYAML, a Ruby Psych, egyes Kubernetes- és Ansible-verziók) még YAML 1.1 szerint olvas, ahol a szabályok eltérnek:

  • A „norvég probléma”: YAML 1.1-ben a country: no jelentése false, így Norvégia NO országkódja eltűnik. Ugyanez igaz a yes, on, off, y és n értékre. A YAML 1.2 csak a true és a false értéket tekinti logikai értéknek.
  • Oktális számok: a 0755 1.1-ben oktális, 1.2-ben viszont sima decimális szám, ott a 0o755 az oktális forma. A biztonság kedvéért tedd idézőjelbe a fájljogosultságokat.
  • Hatvanas számrendszerű számok: 1.1-ben a 22:30 az 1350-es számként értelmeződhet. Tedd idézőjelbe az időpontokat és a portleképezéseket, például "8080:80".

A JSON → YAML irány automatikusan idézőjelbe teszi a kétértelmű stringeket ('no', 'on', 'y'), így az előállított YAML mindkét verzióban ugyanazt jelenti.

Gyakran ismételt kérdések

Veszteségmentes az átalakítás?
Igen. Minden JSON dokumentum érvényes YAML 1.2, és a generált YAML visszaolvasva pontosan ugyanazt az adatot adja. Ezt a Csere gombbal ellenőrizheted.
Miért kap egyes stringek idézőjelet, mások nem?
A Csak ha szükséges beállítással csak ott kerül idézőjel, ahol egy idézőjel nélküli érték mást jelentene, például a 'yes', a '123' vagy a speciális karaktereket tartalmazó stringek esetén. Minden más az olvashatóság kedvéért idézőjel nélkül marad.
Írhatok kommenteket a kimenetbe?
A JSON-ban nincsenek kommentek, így nincs mit átalakítani, de másolás után hozzáadhatsz # comments sorokat a YAML-hez.
Megváltozik a kulcsok sorrendje?
Nem. A kulcsok megtartják a JSON-beli sorrendjüket, hacsak nem jelölöd be a Kulcsok rendezése opciót.
Privátak maradnak az adataim?
Igen. A konverter a böngésződben fut, és a bemeneteddel semmilyen hálózati kérést nem indít.

Kapcsolódó eszközök