UltKit

JSON–YAML átalakító

Alakítsa át a JSON-t olyan YAML-lé, amelyet emberek is el tudnak olvasni, át tudnak nézni és megjegyzésekkel láthatnak el. Töltse fel a .json fájlokat, és behúzott .yaml fájlokat kap ugyanazokkal a kulcsokkal, értékekkel és sorrenddel, amelyeket azonnal betehet egy repositoryba.

Adatkonvertáló

vagy húzza ide a(z) CSV, TSV, TXT … fájlok fájlokat ·

Legfeljebb 95 MB fájlonként· Legfeljebb 20 fájl· Törlés 30 perc után

Kimenet

A fájlokat szervereinken dolgozzuk fel, és 30 perc után töröljük.

Az eszköz használata

  1. 1

    Adja hozzá a JSON fájlokat

    Töltse fel az API-válaszokat, exportált beállításokat vagy generált manifesteket .json formátumban, legfeljebb 20 fájlt, egyenként legfeljebb 95 MB-ig. Minden fájlnak egyetlen érvényes JSON-értéket kell tartalmaznia.

  2. 2

    Hagyja meg az alapértékeket

    A Konvertálás erre mezőben a YAML már ki van választva. Konfigurációs fájlhoz nincs más teendő; a kimenet két szóközös behúzást használ.

  3. 3

    Konvertáljon és commitoljon

    Nyomja meg a Konvertálás erre: YAML gombot, töltse le a .yaml fájlokat, írjon megjegyzéseket oda, ahol a következő olvasónak szüksége lesz rájuk, majd commitolja őket.

Válasz

Hogyan alakíthatok át JSON-t YAML-lá?

Töltse fel a .json fájlt, és nyomja meg a Konvertálás erre: YAML gombot. Az objektumok behúzott kulcs: érték blokkokká, a tömbök kötőjeles listákká válnak, a YAML által félreérthető szövegek pedig megtartják az idézőjelüket.

Miért érdemes a konfigurációs fájlokat JSON-ből YAML-be konvertálni

A JSON nagy részét szoftver állítja elő: API-választ, beállítás-exportot, generátor kimenetét. A YAML nagy részét emberek tartják karban. Az átalakítás általában azt a pillanatot jelzi, amikor az adat már nem gépi kimenet, hanem a csapat saját anyaga, például Gitbe commitolt telepítési manifest, CI-folyamat vagy Ansible-változók.

Tipikus eset: meghív egy felhőalapú API-t, visszakap egy 200 soros JSON-leírást egy erőforrásról, és infrastruktúra-kódként szeretné megőrizni. Az átalakítás után kapcsos zárójelek és vesszők nélküli fájlt kap, ahol egy egysoros módosítás egysoros különbséget ad, a szokatlan értékeket pedig megjegyzésben magyarázhatja. Ugyanez igaz a tesztadatokra és a nem fejlesztők által szerkesztett fordítófájlokra. Ha ehelyett lapos táblázat kell, táblázatkezelőhöz vagy jelentéshez, jobb választás a JSON CSV-be.

Eszközök, amelyek konfigurációs fájljai YAML formátumúak

Hová kerül általában a konvertált YAML
SzervezetKövetelményForrás
GitHub ActionsA munkafolyamatok a .github/workflows mappában, .yml vagy .yaml fájlként találhatókGitHub Docs
GitLab CI/CDA folyamatot a tárhely gyökerében lévő .gitlab-ci.yml határozza megGitLab Docs
Docker ComposeA szolgáltatásokat a compose.yaml írja le (korábban docker-compose.yml)Docker Docs
AnsibleA playbookok és a változófájlok YAML-ban készülnekAnsible Docs
KubernetesA manifestek JSON-t vagy YAML-t fogadnak el; a dokumentáció és a Helm chartok YAML-t használnakKubernetes

JSON YAML-be konvertálás példája trükkös értékekkel

YAML-kimenet ehhez: {"name":"api","version":"1.10","debug":false,"tags":["web","hu"],"country":"NO"}
name: api
version: "1.10"
debug: false
tags:
  - web
  - hu
country: "NO"

Mit nyújt a YAML

  • Megjegyzések # jellel
  • Rövidebb különbségek a kódellenőrzésben
  • A legtöbb sorban nincs kapcsos zárójel, vessző vagy idézőjel
  • Többsoros szöveg | blokkskalárokkal

Mire figyeljen

  • A behúzás jelentést hordoz, ezért egy véletlen szóköz megváltoztatja a szerkezetet
  • Tabulátor nem használható behúzásra
  • Az idézőjel nélküli szövegeket számnak vagy logikai értéknek olvashatják
  • Lassabb és egyenetlenebb értelmezők, mint a JSON-nál

A példa megmutatja, miért nem elég a kapcsos zárójelek egyszerű keresés-cseréje. Az 1.10 verzió a JSON-ban szöveg; idézőjel nélkül a YAML-ban az 1.1 számként olvasnák. A NO, Norvégia ISO-kódja, a YAML 1.1 értelmezőkben, például a PyYAML-ben false-ként értelmeződne. Mindkettő megtartja az idézőjelét, a valódi számok és logikai értékek pedig idézőjel nélkül maradnak.

A JSON és a YAML összehasonlítása

JSON

JavaScript Object Notation

A JSON egy könnyű, szöveges formátum strukturált adatokhoz, amelyet Douglas Crockford tett népszerűvé a 2000-es évek elején, és RFC 8259 és ECMA-404 néven szabványosítottak. Objektumokat, tömböket, szövegeket, számokat, logikai értékeket és null értéket ír le egyszerű, olvasható szintaxissal. Ez az alapértelmezett formátum a webes API-khoz, a konfigurációs fájlokhoz és az alkalmazások közti adatcseréhez szinte minden programozási nyelvben. Nincs benne beépített megjegyzés, dátum vagy séma, és a nagy, mélyen egymásba ágyazott fájlok megjelenítő nélkül nehezen olvashatók.

Tömörítés
–
Átlátszóság
–
Animáció
–
Bevezetés éve
2001 · Douglas Crockford
JSON átalakító

YAML

YAML

A YAML ("YAML Ain't Markup Language") ember számára barátságos adatformátum, amelyet először 2001-ben adtak ki. Zárójelek helyett behúzást használ, támogatja a megjegyzéseket, és a JSON szuperhalmaza. Széles körben használják konfigurációra a Docker Compose-ban, a Kubernetesben, a GitHub Actionsben és sok alkalmazásban. A szóközökre építése miatt egyetlen rossz helyre tett szóközzel el lehet rontani, egyes értékeket, például a „no” szót vagy a dátumokat pedig váratlanul értelmezheti.

Tömörítés
–
Átlátszóság
–
Animáció
–
Bevezetés éve
2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
YAML átalakító

A JSON-t akkor alakítják YAML-lá, amikor a generált vagy API-ból származó adatból olyan konfigurációs fájl kell, amelyet emberek karbantartanak, pull requestekben átnéznek és megjegyzésekkel látnak el.

Kérdések a JSON–YAML átalakítóról

A JSON eleve érvényes YAML?

A YAML 1.2 szerint igen: a 2009-es változatot úgy írták meg, hogy minden JSON-dokumentum egyben YAML-dokumentum is. A JSON-t beillesztheti egy .yaml fájlba, és a legtöbb eszköz elfogadja. Az átalakítás az olvashatóságról szól: a kapcsos zárójelek, idézőjelek és vesszők nélküli blokkstílust várják el a átnézők és a következő karbantartó.

Miért kerül egyes értékek köré idézőjel a YAML-ben?

Mert idézőjel nélkül a YAML más típusként olvasná őket. Az 1.10 verziószámból az 1.1 szám lenne, a yes vagy off pedig a régebbi értelmezőkben logikai értékké válhat. A számnak, dátumnak vagy logikai értéknek tűnő szövegeket idézőjelben kell tartani, hogy szövegek maradjanak, ezért a gondos átalakítás megtartja az idézőjeleket.

Írhatok megjegyzéseket a konvertálás után?

Igen, és ez gyakori ok az átalakításra. Írjon # jelet, utána a megjegyzést a sor végére vagy külön sorba. A JSON-ban nem lehetett leírni, miért van egy érték úgy beállítva; a YAML-ban lehet, ami megkönnyíti az átnézést és az átadást.

Miért ad a YAML-em tabulátorkarakterre vonatkozó hibát?

A YAML specifikáció tiltja a tabulátort behúzásra; csak a szóköz számít. Az átalakító szóközöket ír, de a tabulátort beszúró szerkesztő a következő módosításnál elronthatja a fájlt. Állítsa be a szerkesztőt, hogy a .yaml fájlokban szóközt használjon.

Elfogadja a Kubernetes a konvertált manifestet?

A kubectl a JSON-t és a YAML-t is olvassa, így az adat mindkét esetben ugyanaz; a YAML-változatot használja a legtöbb dokumentáció, Helm chart és kódellenőrzés. Ha később újra JSON kell jq-hoz vagy API-híváshoz, a YAML JSON-ba visszafordítja.