JSON → YAML -muunnin
Muuta JSON siistiksi, helppolukuiseksi YAMLiksi Kubernetesia, Docker Composea, GitHub Actionsia tai Ansiblea varten, ja hallitse sisennystä, tyyliä ja lainausmerkkejä täysin.
Toimii selaimessaEi rekisteröitymistäMitään ei lähetetä
Näin käytät työkalua: JSON → YAML
- Liitä JSON vasempaan kenttään tai avaa
.json-tiedosto. - YAML ilmestyy oikealle kirjoittaessasi.
- Valitse sisennys (2 tai 4 välilyöntiä) ja tyyli: block (yksi avain riviä kohden) tai flow (
{a: 1}/[x, y]) tietystä sisäkkäisyystasosta alkaen. - Valitse lainausmerkkityyli ja valitse Järjestä avaimet, jos haluat aakkosjärjestyksen.
- Kopioi tai lataa YAML. Virheellisestä JSONista ilmoitetaan rivin, sarakkeen ja todennäköisen syyn kera.
Miksi muuntaa JSON YAMLiksi?
JSON sopii erinomaisesti koneille ja API:ille, mutta YAMLia on ihmisten helpompi lukea ja muokata: ei aaltosulkeita, ei pakollisia lainausmerkkejä ja tuki kommenteille. Useimmat infratyökalut, kuten Kubernetes, Helm, Docker Compose, GitHub Actions, GitLab CI ja Ansible, konfiguroidaan YAMLilla, kun taas lähtödata (API-tuloste, kubectl get -o json, Terraformin tila) on usein JSONia.
Block- vs. flow-tyyli
Block-tyyli sijoittaa jokaisen avaimen ja listan alkion omalle rivilleen, ja se on asetustiedostojen tavanomainen valinta. Flow-tyyli käyttää JSONin tapaan inline-merkkejä {} ja [] ja pitää lyhyet lehtirakenteet tiiviinä. ”Flow tasolta 2” pitää kaksi ylintä tasoa block-tyylissä ja kirjoittaa syvemmät tasot riville, mikä toimii hyvin pitkille pienten objektien listoille, kuten porteille tai ympäristömuuttujille.
Turvallinen lainaus
Merkkijonot, jotka YAML-jäsennin voisi tulkita väärin, lainataan automaattisesti: arvot kuten 'no', 'on', '1.0', 'null', merkillä * tai & alkavat merkkijonot sekä merkkijonot, jotka sisältävät : . Valitse Aina yksinkertaiset tai Aina kaksinkertaiset, jos tyylioppaasi vaatii jokaisen merkkijonon lainaamista.
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
Onko muunnos häviötön?
Miksi osa merkkijonoista on lainattu ja osa ei?
'yes', '123' tai erikoismerkkejä sisältävät merkkijonot. Kaikki muu jätetään lainaamatta luettavuuden vuoksi.Voinko lisätä tulokseen kommentteja?
# comments kopioinnin jälkeen.