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ä

JSON-tulos

Näin käytät työkalua: YAML → JSON

  1. Liitä YAML vasempaan kenttään tai avaa .yaml/.yml-tiedosto.
  2. JSON ilmestyy oikealle kirjoittaessasi. Valitse tulokselle 2 välilyöntiä, 4 välilyöntiä tai sarkain.
  3. Valitse Järjestä avaimet järjestääksesi avaimet aakkosjärjestykseen. Tämä auttaa asetuksia vertaillessa.
  4. Jos YAML on virheellinen, tilarivi näyttää rivin ja sarakkeen, ja virheelliset rivit näytetään sen alla ^-merkin kera.
  5. 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: no tarkoittaa arvoa false, joten Norjan maakoodi NO katoaa. Sama koskee arvoja yes, on, off, y ja n. YAML 1.2 käsittelee totuusarvoina vain arvot true ja false.
  • Oktaaliluvut: 0755 on 1.1:ssä oktaaliluku mutta 1.2:ssa tavallinen desimaaliluku; 1.2 käyttää muotoa 0o755. Lainaa tiedosto-oikeudet varmuuden vuoksi.
  • Seksagesimaaliluvut: 1.1:ssä 22:30 voi 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?
Ei. Jäsennys tapahtuu selaimessasi avoimen lähdekoodin js-yaml-kirjastolla. Salaisuuksia tai sisäisiä isäntänimiä sisältävät asetukset eivät koskaan poistu koneeltasi.
Miksi YAMLini epäonnistuu virheellä ”bad indentation”?
YAMLin sisäkkäisyys määritetään välilyönneillä, eikä sarkaimia saa käyttää sisennykseen. Varmista, että samantasoiset avaimet ovat tarkalleen kohdakkain ja listan alkiot (-) on sisennetty johdonmukaisesti yläavaimensa alle.
Mitä YAML-kommenteille tapahtuu?
Ne poistetaan. JSONissa ei ole kommenttisyntaksia, joten kommentteja ei voi siirtää. Takaisin YAMLiksi muuntaminen ei palauta niitä.
Miksi <code>no</code> jäi merkkijonoksi?
Tämä työkalu noudattaa YAML 1.2:ta, jossa vain 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?
Kyllä. Jokaisesta ----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.

Aiheeseen liittyvät työkalut