YAML → JSON -muunnin
Liitä YAML (Kubernetes-manifestit, Docker Compose, CI-asetukset) ja saat siistin JSONin heti. Virheet näyttävät tarkan rivin osoittimen kera.
Toimii selaimessaEi rekisteröitymistäMitään ei lähetetä
Näin käytät työkalua: YAML → JSON
- Liitä YAML vasempaan kenttään tai avaa
.yaml/.yml-tiedosto. - JSON ilmestyy oikealle kirjoittaessasi. Valitse tulokselle 2 välilyöntiä, 4 välilyöntiä tai sarkain.
- Valitse Järjestä avaimet järjestääksesi avaimet aakkosjärjestykseen. Tämä auttaa asetuksia vertaillessa.
- Jos YAML on virheellinen, tilarivi näyttää rivin ja sarakkeen, ja virheelliset rivit näytetään sen alla
^-merkin kera. - Kopioi tai lataa JSON, tai paina Vaihda muuntaaksesi sen takaisin YAMLiksi.
Miten YAML vastaa JSONia
JSON on YAML 1.2:n osajoukko, joten jokaisesta YAML-mappauksesta tulee JSON-objekti, jokaisesta sekvenssistä taulukko ja skalaareista merkkijonoja, numeroita, totuusarvoja tai null. Vain YAMLissa olevat ominaisuudet ratkaistaan muunnoksen aikana:
- Kommentit (
# …) poistetaan, koska JSONissa ei ole kommentteja. - Ankkurit ja aliakset (
&base,*base,<<: *base) laajennetaan täysiksi kopioiksi. - Aikaleimoista, kuten
2024-01-02, tulee ISO 8601 -merkkijonoja. - Monirivisistä merkkijonoista (
|-literaali- ja>-taittolohkot) tulee tavallisia merkkijonoja\n-koodauksin.
Monidokumenttinen YAML
Yksi tiedosto voi sisältää useita YAML-dokumentteja ----erottimin, kuten Kubernetes-manifesteissa on tavallista. JSONissa ei ole vastinetta, joten muunnin palauttaa JSON-taulukon, jossa on yksi alkio dokumenttia kohden, ja kertoo siitä tilarivillä. Yksinäinen --- lopussa ohitetaan.
YAML 1.1:n ja 1.2:n sudenkuopat
Tämä muunnin noudattaa nykyistä YAML 1.2 -määrittelyä. Monet vanhemmat työkalut (PyYAML, Rubyn Psych, jotkin Kubernetes- ja Ansible-versiot) lukevat yhä YAML 1.1:tä, jossa säännöt eroavat:
- Norja-ongelma: YAML 1.1:ssä
country: notarkoittaa arvoafalse, joten Norjan maakoodiNOkatoaa. Sama koskee arvojayes,on,off,yjan. YAML 1.2 käsittelee totuusarvoina vain arvottruejafalse. - Oktaaliluvut:
0755on 1.1:ssä oktaaliluku mutta 1.2:ssa tavallinen desimaaliluku; 1.2 käyttää muotoa0o755. Lainaa tiedosto-oikeudet varmuuden vuoksi. - Seksagesimaaliluvut: 1.1:ssä
22:30voi jäsentyä luvuksi 1350. Lainaa kellonajat ja porttimääritykset, kuten"8080:80".
JSON → YAML -suunta lainaa moniselitteiset merkkijonot ('no', 'on', 'y') automaattisesti, joten tuotettu YAML luetaan samoin molemmissa versioissa.
Usein kysytyt kysymykset
Lähetetäänkö YAMLini jonnekin?
Miksi YAMLini epäonnistuu virheellä ”bad indentation”?
-) on sisennetty johdonmukaisesti yläavaimensa alle.Mitä YAML-kommenteille tapahtuu?
Miksi <code>no</code> jäi merkkijonoksi?
true/false ovat totuusarvoja. Vanhemmat YAML 1.1 -jäsentimet muuttaisivat arvot no, yes, on ja off totuusarvoiksi (”Norja-ongelma”).Voinko muuntaa Kubernetes-manifestin, jossa on useita resursseja?
----erotetusta resurssista tulee yksi tuloksen JSON-taulukon alkio, valmiina käytettäväksi jq:lla tai komennolla kubectl apply -f -, joka hyväksyy myös JSON-listat.