Mikä tämä työkalu on?
YAML on useimpien modernien asetustiedostojen ykkösvalinta — Kubernetes-manifestit, Docker Compose, GitHub Actionsin ja GitLab CI:n putket, Ansible-playbookit — koska se on luettavampi ihmiselle käsin muokattaessa: useimmat avaimet eivät vaadi lainausmerkkejä, ei ylimääräisiä pilkkuja epäonnistuttavaksi, ja kommentit ovat tuettuja. JSON puolestaan on se, mitä useimmat API:t ja ohjelmointikielet tuottavat ja kuluttavat natiivisti.
Tämä työkalu yhdistää nämä kaksi käyttäen kirjastoa js-yaml, laajalti käytettyä JavaScript-toteutusta YAML-määrityksestä, joten jäsennys ja tuotto noudattavat samoja sääntöjä kuin YAML-tietoinen työkalu, kuten `kubectl` tai CI-ajuri, soveltaisi.
JSON:n muuntaminen YAML:ksi muuttaa objektit sisennetyiksi avain: arvo -lohkoiksi ja taulukot `-`-merkillä alkaviksi listaelementeiksi. YAML:n muuntaminen JSON:ksi tekee päinvastoin ja purkaa myös YAML:lle ominaiset tyyppioikotiet (kuten lainaamattoman `true`, `null` tai numerot) niiden oikeiksi JSON-tyypeiksi.
Miksi käyttää sitä?
- Kaksisuuntainen — muunna JSON YAML:ksi tai YAML JSON:ksi samalla näytöllä.
- Standardinmukainen jäsennys ja tuotto js-yamlin kautta, joten tulos vastaa sitä, mitä oikea YAML-työkalusto (Kubernetes, CI-järjestelmät, Ansible) odottaa.
- Käsittelee sisäkkäiset objektit ja taulukot missä tahansa syvyydessä, muuntaen YAML:n sisennyspohjaisen rakenteen ja JSON:n aaltosulkeiden/hakasulkeiden välillä.
- Tulkitsee YAML:n tyyppioikotiet oikein — lainaamattomista true/false-arvoista, null-arvosta ja numeerisista arvoista tulee oikeat JSON-tyypit merkkijonojen sijaan.
- Kopioi leikepöydälle tai lataa .json- tai .yaml-tiedostona.
- 100 % selaimessa toimiva — mitään liittämääsi ei lähetetä minnekään.
Käyttöohje
- Valitse suunta: "JSON → YAML" tai "YAML → JSON".
- Liitä data syötekenttään.
- Klikkaa "Muunna".
- Tarkista tulos ja kopioi se tai lataa tiedosto "Lataa"-painikkeella.
Esimerkki
Syöte
{"name":"Alice","roles":["admin","editor"],"active":true}Tuloste
name: Alice
roles:
- admin
- editor
active: true
Huomaa, miten taulukosta tulee viivalla merkitty lista "roles"-avaimen alla ja totuusarvo pysyy lainaamattomana true-arvona merkkijonon "true" sijaan.
Käytännön vinkkejä
- Kubernetes-manifestin tai GitHub Actions -työnkulun kirjoittaminen: luonnostele rakenne ensin JSON:na (monet editorit ja tekoälytyökalut tuottavat JSON:ia luotettavammin), muunna sitten YAML:ksi lopullista tiedostoa varten.
- Väärin toimivan YAML-konfiguraation vianetsintä: muunna se JSON:ksi nähdäksesi tarkalleen, mitkä arvot ovat merkkijonoja, numeroita tai totuusarvoja — YAML:n joustava syntaksi voi piilottaa tyyppiristiriitoja, jotka ovat ilmeisiä JSON:ssa.
- Jos JSON:ssasi on avaimia, joissa on erikoismerkkejä tai jotka alkavat numerolla, js-yaml lainaa ne automaattisesti YAML-tulosteessa, jotta ne jäsentyvät oikein takaisin.
Miksi tyyppipäättely on YAML:n hankalin osa
YAML:n suurin käytettävyysetu JSON:iin verrattuna — se, ettei useimpien arvojen ympärille tarvita lainausmerkkejä — on myös sen suurin hienovaraisten virheiden lähde. Klassinen esimerkki on "Norja-ongelma": YAML 1.1:ssä (jota monet vanhemmat jäsentimet käyttävät) lainaamaton arvo `no` tulkitaan totuusarvoksi `false`, ei merkkijonoksi "no", mikä on rikkonut oikeita maakoodikonfiguraatioita, joissa on listattu Norja. Tämä työkalu noudattaa YAML 1.2 -määritystä, joka kavensi lainaamattomien, totuusarvoiksi tulkittavien arvojen joukon vain arvoihin `true` ja `false` (sekä niiden kirjainkokovariantteihin), mikä vähentää — muttei poista — tätä ongelmaluokkaa. Kun olet epävarma siitä, miten arvo tulkitaan tyypiltään, sen eksplisiittinen lainaaminen YAML:ssa on turvallisin valinta.
Usein kysytyt kysymykset
Säilyvätkö YAML-kommentit, kun muunnetaan JSON:ksi ja takaisin?
Ei. JSON:ssa ei ole kommenttikäsitettä, joten YAML:n muuntaminen JSON:ksi hävittää kaikki lähteen #-kommentit. Jos muunnat sen JSON:n takaisin YAML:ksi, kommentit eivät palaudu — tämä on muodon sisäänrakennettu rajoitus, ei työkalun virhe.
Miten työkalu käsittelee YAML-ankkureita ja aliaksia (& ja *)?
Taustalla oleva jäsennin (js-yaml) purkaa ankkurit ja aliakset ennen JSON:n tuottamista, joten YAML-tiedosto, joka käyttää &-ankkureita ja *-aliaksia datalohkon uudelleenkäyttöön, muuntuu JSON:ksi siten, että data on kirjoitettu kokonaisuudessaan jokaiseen kohtaan, jossa siihen viitataan.
Miksi YAML-numeroni tuli JSON:ssa merkkijonona, tai päinvastoin?
Jos arvo on lainausmerkeissä YAML-lähteessä (esim. version: "3.10"), se käsitellään tarkoituksella merkkijonona — tämä on tärkeää, koska lainaamattomat YAML-numerot kuten 3.10 voivat menettää lopun nollan liukulukuna jäsennettäessä. Lainaa arvo lähde-YAML:ssa, jos tarvitset sen nimenomaan tekstinä.
Voinko muuntaa YAML-tiedoston, jossa on useita dokumentteja (erotettu ---:llä)?
Tämä työkalu muuntaa yhden YAML-dokumentin kerrallaan. Jos tiedostossasi on useita ----merkeillä erotettuja dokumentteja, muunna yksi osa kerrallaan tai poista erottimet ja yhdistä ne yhdeksi dokumentiksi ensin, jos se sopii käyttötarkoitukseesi.
Lähetetäänkö dataani minnekään?
Ei. Muunnos tapahtuu kokonaan selaimessasi js-yaml-kirjaston avulla — mitään ei lähetetä palvelimelle, mikä tekee siitä turvallisen myös oikeiden asetustiedostojen kanssa, mukaan lukien sisäisiä isäntänimiä tai infrastruktuurin yksityiskohtia sisältävät tiedostot.