UltKit

Pretvornik JSON v YAML

Prepišite JSON v YAML, ki ga ljudje lahko berejo, pregledujejo in komentirajo. Naložite datoteke .json in dobite zamaknjene datoteke .yaml z enakimi ključi, vrednostmi in vrstnim redom, pripravljene za repozitorij.

Pretvornik podatkov

ali spustite datoteke CSV, TSV, TXT … sem ·

Največ 95 MB na datoteko· Do 20 datotek· Izbrisano po 30 minutah

Izhod

Datoteke se obdelajo na naših strežnikih in izbrišejo po 30 minutah.

Kako uporabljati to orodje

  1. 1

    Dodajte datoteke JSON

    Naložite odgovore API-jev, izvožene nastavitve ali ustvarjene manifeste kot .json, do 20 datotek, vsaka do 95 MB. Vsaka datoteka mora vsebovati eno veljavno vrednost JSON.

  2. 2

    Pustite privzete nastavitve

    YAML je pod Pretvori v že izbran. Za konfiguracijsko datoteko ni treba spreminjati ničesar drugega; izhod uporablja zamik z dvema presledkoma.

  3. 3

    Pretvorite in shranite v repozitorij

    Pritisnite Pretvori v YAML, prenesite datoteke .yaml, dodajte komentarje tam, kjer jih bo potreboval naslednji bralec, in jih shranite v repozitorij (commit).

Odgovor

Kako pretvoriti JSON v YAML?

Naložite datoteko .json in pritisnite Pretvori v YAML. Objekti postanejo zamaknjeni bloki ključ: vrednost, polja postanejo seznami s pomišljaji, nizi, ki jih lahko YAML napačno razume, pa obdržijo narekovaje.

Zakaj pretvoriti JSON v YAML za konfiguracijske datoteke

Večino JSON ustvari programska oprema: odgovor API-ja, izvoz nastavitev, izhod generatorja. Večino YAML vzdržujejo ljudje. Pretvorba običajno zaznamuje trenutek, ko podatki nehajo biti strojni izhod in postanejo nekaj, kar ima v lasti ekipa, na primer manifest za razmestitev v Gitu, cevovod CI ali nabor spremenljivk Ansible.

Tipičen primer: pokličete API v oblaku, dobite 200-vrstični opis vira v JSON in ga želite obdržati kot infrastrukturno kodo. Pretvorba da datoteko brez oklepajev in vejic, kjer enovrstična sprememba da enovrstičen diff in lahko nenavadne vrednosti pojasnite v komentarjih. Enako velja za testne podatke in prevodne datoteke, ki jih urejajo tudi nerazvijalci. Če namesto tega potrebujete ploščato tabelo, za preglednico ali poročilo, je bolj primeren JSON v CSV.

Orodja s konfiguracijskimi datotekami v YAML

Kje se pretvorjeni YAML običajno uporablja
OrganizacijaZahtevaVir
GitHub ActionsPoteki dela so v .github/workflows kot datoteke .yml ali .yamlGitHub Docs
GitLab CI/CDCevovod je določen v .gitlab-ci.yml v korenu repozitorijaGitLab Docs
Docker ComposeStoritve so opisane v compose.yaml (prej docker-compose.yml)Docker Docs
AnsiblePlaybooki in datoteke s spremenljivkami so napisani v YAMLAnsible Docs
KubernetesManifesti sprejemajo JSON ali YAML; dokumentacija in paketi Helm uporabljajo YAMLKubernetes

Primer pretvorbe JSON v YAML z zahtevnimi vrednostmi

Izhod YAML za {"name":"api","version":"1.10","debug":false,"tags":["web","eu"],"country":"NO"}
name: api
version: "1.10"  # niz, ne število
debug: false
tags:
  - web
  - eu
country: "NO"  # Norveška, ne false

Kaj ponuja YAML

  • Komentarji z #
  • Krajši diffi pri pregledu kode
  • Brez oklepajev, vejic in narekovajev v večini vrstic
  • Večvrstično besedilo z blokovnimi skalarji |

Na kaj paziti

  • Zamik ima pomen, zato zaplavali presledek spremeni strukturo
  • Tabulatorji za zamik niso dovoljeni
  • Nize brez narekovajev lahko razumemo kot števila ali logične vrednosti
  • Počasnejši in manj enotni razčlenjevalniki kot za JSON

Primer kaže, zakaj preprosto zamenjevanje oklepajev ne zadošča. Različica 1.10 je v JSON niz; zapisana brez narekovajev v YAML bi se prebrala kot število 1.1. NO, ISO koda Norveške, bi ga razčlenjevalniki YAML 1.1, kot je PyYAML, prebrali kot false. Oba obdržita narekovaje, prava števila in logične vrednosti pa ostanejo brez njih.

Primerjava JSON in YAML

JSON

JavaScript Object Notation

JSON je lahek besedilni format za strukturirane podatke, ki ga je v zgodnjih letih 2000 populariziral Douglas Crockford, standardizirana pa sta ga RFC 8259 in ECMA-404. Objekte, tabele, nize, števila, logične vrednosti in null predstavlja s preprosto, berljivo sintakso. Je privzeti format za spletne API-je, konfiguracijske datoteke in izmenjavo podatkov med aplikacijami v skoraj vseh programskih jezikih. Nima vgrajenih komentarjev, datumov ali shem, velikih gnezdenih datotek pa brez pregledovalnika ni lahko brati.

Stiskanje
–
Prosojnost
–
Animacija
–
Uvedeno
2001 · Douglas Crockford
Pretvornik JSON

YAML

YAML

YAML (»YAML Ain't Markup Language«) je človeku prijazen podatkovni format, prvič izdan leta 2001. Namesto oklepajev uporablja zamike, podpira komentarje in je nadmnožica JSON. Široko se uporablja za konfiguracijo v Docker Compose, Kubernetes, GitHub Actions in številnih aplikacijah. Zaradi odvisnosti od presledkov ga je lahko pokvariti z enim napačno postavljenim presledkom, nekatere vrednosti, na primer »no« ali datumi, pa se lahko razlagajo nepričakovano.

Stiskanje
–
Prosojnost
–
Animacija
–
Uvedeno
2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
Pretvornik YAML

JSON v YAML pretvarjajo, kadar morajo generirani ali API podatki postati konfiguracijska datoteka, ki jo ljudje vzdržujejo, pregledujejo v pull requestih in dopolnjujejo s komentarji.

Vprašanja o pretvorniku JSON v YAML

Ali je JSON že veljaven YAML?

Po YAML 1.2 da: revizija iz leta 2009 je napisana tako, da je vsak dokument JSON hkrati tudi dokument YAML. JSON bi lahko prilepili v datoteko .yaml in večina orodij bi ga sprejela. Pri pretvorbi gre za berljivost: blokovni slog brez oklepajev, narekovajev in vejic je tisto, kar pričakujejo pregledovalci in naslednji vzdrževalec.

Zakaj so nekatere vrednosti v YAML v narekovajih?

Ker bi jih YAML brez narekovajev prebral kot drug tip. Niz različice, kot je 1.10, bi postal število 1.1, yes ali off pa bi lahko v starejših razčlenjevalnikih postala logični vrednosti. Nizi, ki so videti kot števila, datumi ali logične vrednosti, potrebujejo narekovaje, da ostanejo nizi, zato jih skrbna pretvorba ohrani.

Ali lahko po pretvorbi dodam komentarje?

Da, in to je pogost razlog za pretvorbo. Napišite # in za njim opombo na koncu vrstice ali v svoji vrstici. JSON ni omogočal razlage, zakaj je vrednost nastavljena; YAML jo, kar olajša preglede in primopredaje.

Zakaj YAML javi napako zaradi tabulatorja?

Specifikacija YAML prepoveduje tabulatorje za zamik; štejejo samo presledki. Pretvornik zapisuje presledke, a urejevalnik, ki vstavlja tabulatorje, lahko ob naslednjem urejanju pokvari datoteko. V urejevalniku nastavite uporabo presledkov za datoteke .yaml.

Ali bo Kubernetes sprejel pretvorjeni manifest?

kubectl bere JSON in YAML, zato so podatki v obeh primerih enaki; različica YAML je preprosto tista, ki jo uporablja večina dokumentacije, paketov Helm in pregledov kode. Če pozneje potrebujete JSON nazaj za jq ali klic API-ja, ga ustvari YAML v JSON.