JSON-i ja YAML-i teisendaja
Teisenda JSON YAML-iks ja YAML JSON-iks oma brauseris, ankrute, ühendusvõtmete ja mitme dokumendiga failide toega. Midagi ei laadita üles.
Kuidas JSON-i ja YAML-i teisendajat kasutada
- Vali suund: JSON → YAML või YAML → JSON.
- Kleebi andmed või klõpsa nuppu Ava fail, et laadida
.json-,.yaml- või.yml-fail (kuni 10 MB). - Vali Taane (2 või 4 tühikut) ja soovi korral Sorteeri võtmed tähestikuliselt.
- Klõpsa Teisenda või lihtsalt jätka kirjutamist: tulemus uueneb automaatselt. Kui sisend on vigane, annab veateade probleemi rea ja veeru.
- Kopeeri tulemus või laadi see alla. Vaheta suund saadab väljundi tagasi sisendisse, et teisendada seda vastupidi.
JSON ja YAML: samad andmed, erinev süntaks
YAML on praktikas JSON-i ülemhulk: iga JSON-dokument kirjeldab andmeid, mida YAML suudab väljendada, ja YAML lisab kergema süntaksi, mida on inimesel lihtsam lugeda ja muuta. Seepärast kirjutatakse Kubernetese manifeste, Docker Compose’i faile, GitHub Actionsi ja GitLab CI töövooge, Ansible’i playbook’e ning OpenAPI spetsifikatsioone tavaliselt YAML-is, samal ajal kui API-d ja programmid vahetavad JSON-i.
Samad andmed mõlemas vormingus:
{"name": "web", "ports": [80, 443], "env": {"DEBUG": false}}
name: web
ports:
- 80
- 443
env:
DEBUG: false
JSON → YAML
Teisendaja kirjutab plokistiilis YAML-i: üks võti rea kohta, loendid kriipsudega ja pesastatud objektid taandatud. Pikki stringe ei voldita kunagi ning mitmerealised stringid kasutavad literaalset | stiili, et reavahetused säiliksid täpselt. Stringid, mida YAML muidu loeks muu tüübina, pannakse jutumärkidesse: "yes", "1.0" või "null" jäävad pärast edasi-tagasi teisendust stringideks. Sorteeri võtmed järjestab iga objekti võtmed tähestikuliselt, mis teeb kahe seadistusfaili võrdlemise lihtsamaks.
YAML → JSON
YAML loetakse YAML 1.2 põhiskeemiga, samade reeglitega, mida kasutab enamik tänapäevaseid tööriistu:
true/false, arvud janull(või~) muutuvad JSON-i väärtusteks;yes,no,onjaoffjäävad stringideks, nagu YAML 1.2 spetsifikatsioon nõuab.- Ankrud ja aliased (
&base,*base) laiendatakse ning ühendusvõtmed (<<: *base), mis on CI-failides levinud, on toetatud. - Fail mitme dokumendiga, mis on eraldatud märgiga
---, muutub JSON-massiiviks, kus on üks element dokumendi kohta, ning teade ütleb, mitu dokumenti ühendati. - Kommentaarid jäetakse ära, sest JSON-is kommentaare pole.
.infja.nanei oma JSON-is vastet; need kirjutatakse stringidena"Infinity"ja"NaN".
Et kaitsta sinu brauserit „miljardi naeru“ failide eest, kus mõned aliased laienevad miljarditeks väärtusteks, lükatakse tagasi dokument, mis laieneb üle miljoni väärtuseni.
Levinud YAML-i vead
- Tabulaatorid taandeks: YAML lubab ainult tühikuid.
- Ebajärjekindel taane: sama loendi või objekti elemendid peavad algama samast veerust.
- Puuduv tühik koolonil järel:
key:valueon üks string, samal ajal kuikey: valueon võtme-väärtuse paar. - Jutumärkideta erimärgid: väärtus, mis algab märgiga
@, tagurpidi ülakomaga,*,&või!või mis sisaldab:või#, tuleb panna jutumärkidesse.
Korduma kippuvad küsimused
Kas minu fail saadetakse serverisse?
Ei. Teisendus toimub sinu brauseris ning sinu seadistusfailid, saladused või API andmed ei lahku sinu arvutist.
Miks „yes“ ja „no“ ei teisendata tõeväärtusteks?
Alates YAML 1.2-st on tõeväärtused ainult true ja false. Vanemad YAML 1.1 parserid käsitlesid yes, no, on ja off tõeväärtustena, mis tekitas kuulsa „Norra probleemi“ (riigikood NO loeti väärtuseks false). See tööriist järgib YAML 1.2.
Kas YAML-i kommentaarid säilivad?
Ei. JSON-is kommentaare pole, seega need kaovad YAML → JSON teisendusel. JSON → YAML teisendamisel saad kommentaarid tulemusele hiljem lisada.
Kas saan teisendada Kubernetese faili mitme ressursiga?
Jah. Iga märgiga --- eraldatud ressurss muutub JSON-massiivi üheks elemendiks. Selle massiivi teisendamine tagasi YAML-iks annab ühe dokumendi, mis sisaldab loendit.
Kas teisendaja muudab võtmete järjekorda?
Mitte, kui sa ei märgi Sorteeri võtmed: võtmed säilitavad järjekorra, milles need sinu sisendis on. Ainus erand tuleb JavaScriptist endast: võtmed, mis on täisarvud, nagu "10" või "2", paigutatakse esimesena kasvavas järjekorras.
Seotud tööriistad
- JSON-i vormindaja ja valideerija Tasuta JSON-i vormindaja ja valideerija, mis kaunistab, minimeerib ja kontrollib JSON-i sinu brauseris ning teatab süntaksivead rea ja veeruga.
- JSON-i ja CSV teisendaja Teisenda JSON CSV-ks ja CSV tagasi JSON-iks oma brauseris. Pesastatud võtmed lamendatakse veergudeks, eraldajad tuvastatakse ja midagi ei laadita üles.
- JSON-i ja XML-i teisendaja Teisenda JSON XML-iks ja XML JSON-iks oma brauseris, atribuutide, korduvate elementide ja CDATA toega. Midagi ei laadita serverisse.