Használata
- Válassza ki az irányt: JSON → YAML vagy YAML → JSON.
- 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.
- Válasszon 2 vagy 4 szóközös behúzást a kimenethez.
- 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.