UltKit

YAML–JSON átalakító

Alakítsa át a YAML konfigurációkat, OpenAPI-specifikációkat és CI-fájlokat olyan JSON-ná, amelyet bármely parser, API vagy sémavalidátor beolvas. Töltsön fel .yaml vagy .yml fájlokat, és töltse le a tagolt JSON-t.

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

    YAML fájlok feltöltése

    Adjon hozzá .yaml vagy .yml fájlokat, egyszerre legfeljebb 20-at, fájlonként legfeljebb 95 MB méretig. Az eredeti nevek megmaradnak; a JSON fájlok ugyanazt a nevet kapják új kiterjesztéssel.

  2. 2

    Tagolt vagy tömör kimenet választása

    Az Olvasható formázás be van kapcsolva, ezért a JSON behúzással készül, így könnyebb olvasni és átnézni. A Speciális beállítások alatt kikapcsolhatja, ha egysoros fájlra van szüksége, például kérés törzsébe illesztéshez.

  3. 3

    Konvertálás és felhasználás

    Nyomja meg a Konvertálás erre: JSON gombot, töltse le a fájlt, majd adja át az API-nak, az ellenőrzőnek vagy a szkriptnek, amelyhez szüksége volt rá.

Miért konvertálják a fejlesztők a YAML-t JSON-ba

A YAML embereknek készült: kapcsos zárójelek helyett behúzás, megjegyzések, a legtöbb szöveg körül nincs idézőjel. Ezért ez a formátuma a Kubernetes-manifesteknek, a GitHub Actions munkafolyamatoknak, a Docker Compose fájloknak és az OpenAPI-specifikációknak, amelyeket a csapatok kézzel szerkesztenek. A JSON programoknak készült. Minden nyelv szabványos könyvtára tartalmaz JSON-értelmezőt, a böngészők natívan értelmezik, és a legtöbb HTTP API mást nem is fogad el.

Az átalakításra ezért a határfelületen van szükség. Egy platformmérnök a manifestet a csak JSON-t olvasó jq-n vezeti át. Egy backend-fejlesztő OpenAPI-specifikációt küld egy JSON-t váró kódgenerátornak. Egy tesztelő YAML-ban írt tesztadatokat tölt be egy JavaScript tesztkészletbe. Mindegyik esetben a YAML marad az irányadó forrás, a JSON pedig build-melléktermék. Ha konfigurációk helyett egy egész könyvtárnyi feedet vagy exportot kell átalakítani, az XML JSON-ba eszköz a régebbi jelölőnyelvet kezeli ugyanígy.

Hogyan fejlődött együtt a YAML és a JSON

Clark Evans először javasolta a YAML-t
2001
A YAML 1.2 a JSON-t a YAML részhalmazává tette
2009
RFC 8259, a jelenlegi JSON-szabvány
2017
Megjelent a YAML 1.2.2 revízió
2021

Mi lesz a csak YAML-ben létező funkciókkal a JSON-ban

A horgony (&defaults) és az aliasai (*defaults) lehetővé teszik, hogy a YAML újrahasznosítson egy blokkot. A JSON-ban nincsenek hivatkozások, ezért minden aliast a horgonyzott blokk teljes másolata vált fel.

  • A JSON érezhetően hosszabb lehet, mint a YAML
  • Az összefésülő kulcsok (<<: *defaults) ugyanígy kibomlanak
Egy kis YAML konfiguráció olvashatóan formázott JSON-ként
{
  "service": "billing",
  "replicas": 3,
  "ports": [8080, 9090],
  "env": {
    "LOG_LEVEL": "info",
    "REGION": "NO"
  }
}

Tények a YAML és a JSON formátumról

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ó

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-t akkor alakítanak JSON-ná, ha egy embereknek írt konfigurációt vagy specifikációt gépnek kell átadni: API-kéréshez, séma-ellenőrzőhöz vagy olyan eszközhöz, amelyben nincs YAML-értelmező.

GYIK a YAML–JSON átalakítóról

Miért érdemes a YAML-t JSON-ba konvertálni, ha ugyanazokat az adatokat tárolják?

Mert sok eszköz csak az egyiket tudja olvasni. JSON-olvasót minden programozási nyelv és böngésző tartalmaz, a YAML-hoz viszont külön könyvtár kell. A REST API-k kérés törzse, a JSON Schema validátorok, a jq, valamint az olyan fájlok, mint a package.json vagy a böngészőbővítmények manifest.json fájlja, mind JSON-t várnak.

Mi történik a YAML-megjegyzésekkel?

Elvesznek. Az RFC 8259 szerint a JSON-nak nincs megjegyzés-szintaxisa, így a #-tel kezdődő soroknak nincs hová kerülniük. A YAML fájlt tartsa dokumentált forrásként, a JSON-t pedig kezelje generált másolatként, amelyet bármikor újra elő lehet állítani.

Miért lett a NO vagy az off értékből false?

A YAML 1.1-et követő értelmezők a yes, no, on és off értékeket logikai értékként olvassák, így egy országkód, például a norvég NO, false lehet belőle. A YAML 1.2 a logikai értékeket a true és false szavakra korlátozza, de nem minden eszköz követi. Az ilyen értékeket tegye idézőjelbe a YAML-ban, például "NO", és a JSON-ban is szövegek maradnak.

Átalakítható egy YAML-ben írt CloudFormation-sablon?

Az AWS CloudFormation mindkét formátumot elfogadja, de a rövid címkék, például a !Ref és a !GetAtt, csak YAML-ban léteznek. A JSON-sablonok teljes függvényként írják őket: {"Ref": "MyBucket"} vagy {"Fn::GetAtt": [...]}. Átalakítás előtt írja át a rövid címkéket hosszú alakra, hogy a JSON-sablon érvényes maradjon.

Hogyan konvertálhatok fordított irányban?

Használja a JSON YAML-be eszközt. Ez a szokásos irány, amikor egy API-válaszból vagy generált fájlból olvasható konfigurációs fájlt kell készíteni egy repositoryba.