UltKit

Prevod YAML do JSON

Preveďte konfigurácie YAML, špecifikácie OpenAPI a súbory CI do formátu JSON, ktorý prečíta každý parser, API aj validátor schém. Nahrajte súbory .yaml alebo .yml a stiahnite si odsadený JSON.

Prevodník dát

alebo sem presuňte súbory CSV, TSV, TXT … ·

Max. 95 MB na súbor· Až 20 súborov· Odstránenie po 30 minútach

Výstup

Súbory sa spracúvajú na našich serveroch a po 30 minútach sa odstránia.

Ako používať tento nástroj

  1. 1

    Nahrajte súbory YAML

    Pridajte súbory .yaml alebo .yml, naraz až 20 a každý do 95 MB. Pôvodné názvy sa zachovajú; súbory JSON dostanú rovnaké názvy s novou príponou.

  2. 2

    Zvoľte odsadený alebo kompaktný výstup

    Možnosť Prehľadné formátovanie je zapnutá, JSON sa odsadí pre ľahké čítanie a kontrolu kódu. Vypnite ju v časti Rozšírené nastavenia, ak chcete jednoriadkový súbor na vloženie do tela požiadavky.

  3. 3

    Preveďte a použite

    Stlačte Previesť na JSON, súbor stiahnite a odovzdajte ho API, validátoru alebo skriptu, ktorý ho potreboval.

Prečo vývojári prevádzajú YAML do JSON

YAML je písaný pre ľudí: odsadenie namiesto zložených zátvoriek, komentáre, väčšina reťazcov bez úvodzoviek. Preto je to formát manifestov Kubernetes, workflow GitHub Actions, súborov Docker Compose a špecifikácií OpenAPI, ktoré tímy upravujú ručne. JSON je písaný pre programy. Každý jazyk má parser JSON v štandardnej knižnici, prehliadače ho spracujú natívne a väčšina HTTP API neprijíma nič iné.

Prevod sa preto deje na hranici systémov. Platformový inžinier pošle manifest cez jq, ktorý číta iba JSON. Backendový vývojár pošle špecifikáciu OpenAPI generátoru kódu, ktorý chce JSON. Tester načíta testovacie dáta v YAML do testovacej sady v JavaScripte. V každom prípade zostáva zdrojom pravdy YAML a JSON je výstup zostavenia. Pre celý priečinok feedov alebo exportov namiesto konfigurácií rovnako spracuje starší značkovací formát XML do JSON.

Ako sa YAML a JSON vyvíjali spoločne

YAML prvýkrát navrhol Clark Evans
2001
YAML 1.2 urobil z JSON podmnožinu YAML
2009
RFC 8259, aktuálny štandard JSON
2017
Vydaná revízia YAML 1.2.2
2021

Čo sa v JSON stane s funkciami, ktoré má len YAML

Kotva (&defaults) a jej aliasy (*defaults) umožňujú v YAML opakovane použiť blok. JSON nemá odkazy, preto sa každý alias nahradí úplnou kópiou bloku s kotvou.

  • JSON môže byť výrazne dlhší ako YAML
  • Kľúče zlúčenia (<<: *defaults) sa rozvinú rovnako
Malá konfigurácia YAML ako prehľadne formátovaný JSON
{
  "service": "billing",
  "replicas": 3,
  "ports": [8080, 9090],
  "env": {
    "LOG_LEVEL": "info",
    "REGION": "NO"
  }
}

Fakty o formátoch YAML a JSON

YAML

YAML

YAML („YAML Ain't Markup Language“) je dátový formát vhodný pre ľudí, prvýkrát vydaný v roku 2001. Namiesto zátvoriek používa odsadenie, podporuje komentáre a je nadmnožinou JSON. Široko sa využíva na konfiguráciu v Docker Compose, Kubernetes, GitHub Actions a mnohých aplikáciách. Keďže závisí od medzier, dá sa ľahko pokaziť jedinou zle umiestnenou medzerou a niektoré hodnoty, napríklad „no“ alebo dátumy, sa môžu vyhodnotiť neočakávane.

Kompresia
–
Priehľadnosť
–
Animácia
–
Rok vzniku
2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
Konvertor YAML

JSON

JavaScript Object Notation

JSON je ľahký textový formát pre štruktúrované dáta, ktorý na začiatku 21. storočia spopularizoval Douglas Crockford a ktorý je normalizovaný ako RFC 8259 a ECMA-404. Pomocou jednoduchej, čitateľnej syntaxe vyjadruje objekty, polia, reťazce, čísla, booleovské hodnoty a null. Je predvoleným formátom webových API, konfiguračných súborov a výmeny dát medzi aplikáciami takmer v každom programovacom jazyku. Nemá vstavané komentáre, dátumy ani schémy a veľké vnorené súbory sa bez prehliadača ťažko čítajú.

Kompresia
–
Priehľadnosť
–
Animácia
–
Rok vzniku
2001 · Douglas Crockford
Konvertor JSON

YAML sa prevádza na JSON, keď konfigurácia alebo špecifikácia písaná pre ľudí musí poslúžiť stroju: požiadavke API, validátoru schém alebo nástroju bez parsera YAML.

Časté otázky o prevode YAML do JSON

Prečo prevádzať YAML do JSON, keď obsahujú rovnaké dáta?

Pretože mnohé nástroje vedia spracovať len jeden z nich. Čítačky JSON sú súčasťou každého programovacieho jazyka a prehliadača, kým YAML vyžaduje ďalšiu knižnicu. Tela požiadaviek pre REST API, validátory JSON Schema, jq aj súbory ako package.json alebo manifest.json rozšírenia prehliadača očakávajú JSON.

Čo sa stane s komentármi v YAML?

Vynechajú sa. RFC 8259 nedefinuje pre JSON syntax komentárov, takže riadky začínajúce znakom # nemajú kam ísť. YAML súbor si ponechajte ako zdroj s dokumentáciou a JSON berte ako vygenerovanú kópiu, ktorú môžete kedykoľvek vytvoriť znova.

Prečo sa NO alebo off zmenilo na false?

Parsery podľa YAML 1.1 čítajú yes, no, on a off ako booleovské hodnoty, takže kód krajiny ako NO pre Nórsko sa môže zmeniť na false. YAML 1.2 obmedzuje booleovské hodnoty na true a false, ale nie každý nástroj ho dodržiava. Takéto hodnoty dajte v YAML do úvodzoviek, napríklad "NO", a v JSON zostanú reťazcami.

Môžem previesť šablónu CloudFormation napísanú v YAML?

AWS CloudFormation akceptuje oba formáty, ale skrátené značky ako !Ref a !GetAtt existujú iba v YAML. Šablóny JSON ich zapisujú ako plné funkcie, {"Ref": "MyBucket"} alebo {"Fn::GetAtt": [...]}. Pred prevodom prepíšte skrátené značky na dlhý tvar, aby šablóna JSON zostala platná.

Ako previesť JSON späť do YAML?

Použite JSON do YAML. Je to bežný smer, keď sa odpoveď API alebo vygenerovaný súbor má stať čitateľným konfiguračným súborom v repozitári.