tigtools

JSON ⇄ YAML konverter

Váltson irányt, illessze be az adatait, és azonnal kapja meg az átalakított eredményt. Hasznos Kubernetes-manifestekhez, CI-folyamatokhoz és alkalmazáskonfigurációkhoz.

Böngészőben fut Regisztráció nélkül

Irány
Behúzás

Használata

  1. Válassza ki az irányt: JSON → YAML vagy YAML → JSON.
  2. Illessze be az adatait, vagy nyomja meg a „Példa kipróbálása” gombot. Az eredmény gépelés közben frissül.
  3. Válasszon 2 vagy 4 szóközös behúzást a kimenethez.
  4. Másolja vagy töltse le az eredményt. A „Kimenet használata bemenetként” megfordítja az irányt, így vissza tudja alakítani.

Hogyan működik

Az átalakítás a nyílt forráskódú yaml könyvtárat (2. verzió) használja, amely a YAML 1.2 specifikációt valósítja meg. A YAML 1.2 gyakorlati értelemben a JSON bővített halmaza, így bármely JSON-dokumentum veszteség nélkül alakítható YAML-lé, és a csak leképezéseket (map), listákat, szövegeket, számokat, logikai értékeket és null-t használó YAML azonos JSON-ná alakul vissza.

YAML írásakor az eszköz idézőjelekbe teszi azokat a szövegeket, amelyeket az olvasó másnak érthetne. A régebbi YAML 1.1-értelmezők, például a PyYAML és számos CI-eszköz a yes, no, on és off értékeket logikai értékként, a 0777-et oktális számként, a 2024-01-31-et pedig dátumként olvassák, ezért ezeket "yes", "0777" és "2024-01-31" formában írjuk. A hosszú szövegek nincsenek több sorba tördelve. A megjegyzések nem vihetők át, mert a JSON nem tartalmaz megjegyzéseket.

YAML olvasásakor a horgonyok (&name) és aliasok (*name) ki lesznek fejtve, beleértve a << merge kulcsot is, és a --- jellel elválasztott több dokumentumot tartalmazó fájl JSON-tömbbé alakul. A böngésző védelme érdekében az alias-kifejtés korlátozott, ami megállítja a „billion laughs” dokumentumokat. A JSON-megfelelővel nem rendelkező YAML-értékek a lehető legjobban lesznek átalakítva: a .inf és a .nan null lesz, az időbélyegek pedig szövegek maradnak. A szintaktikai hibák sor és oszlop megjelölésével jelennek meg.

Példák

Kubernetes manifest

Egy szkript által JSON-ban írt Deployment a kubectl felhasználók által várt YAML elrendezésre alakul át, ahol a containers alatti listák - name: web alakban szerepelnek. Az olyan értékek, mint a "no", idézőjelben maradnak, hogy szövegek legyenek.

CI-konfiguráció horgonyokkal

Egy pipeline-fájl alapértelmezéseket határoz meg: &defaults, és a <<: *defaults segítségével újrahasználja őket. A JSON-ra konvertálás pontosan megmutatja, hogy az egyesítés után mely kulcsok kerülnek az egyes jobokba.

OpenAPI specifikáció

Egy OpenAPI-fájlt YAML-ben tartanak karban, de a kódgenerátornak JSON-ra van szüksége. Illessze be a YAML-t, válassza a 2 szóközös behúzást, és töltse le a .json fájlt.

Gyakori kérdések

Miért szerepel a „yes” idézőjelek között a YAML-fájlomban?

A YAML 1.1 szabályai szerint – amelyeket a PyYAML, az Ansible és sok más eszköz még mindig használ – az idézőjel nélküli yes, no, on vagy off logikai értéknek számít. Az idézőjelezés hatására minden elemző sztringként kezeli. Az idézőjelek nem részei az értéknek.

Megmaradnak a YAML-megjegyzések a JSON-ra konvertáláskor?

Nem. A JSON nem támogat megjegyzéseket, ezért a megjegyzések elvesznek. A JSON YAML-lé visszakonvertálásakor sem állnak vissza.

Mi történik több, --- jellel elválasztott YAML-dokumentum esetén?

Ezek egy JSON-tömbbé alakulnak, sorrendben, dokumentumonként egy elemmel. Egyetlen dokumentum közvetlenül az értékére alakul át.

Mi a helyzet az olyan egyéni címkékkel, mint a CloudFormation !Ref?

Az alkalmazásspecifikus címkéket nem értelmezi. Az eszköz figyelmeztetést jelenít meg, és a címkézett értéket egyszerű értékként alakítja át, így a !Ref MyBucket a „MyBucket” sztringgé válik, maga a címke pedig elvész.

Adatvédelem

Mindkét irányú átalakítás teljesen a böngészőben fut. A JSON- vagy YAML-adatok nem kerülnek feltöltésre, tárolásra, és nem szerepelnek az analitikában.