JSON–YAML-muunnin
Muunna data muodosta JSON muotoon YAML heti kirjoittaessasi, suoraan selaimessa.
Syöte
Tuloste
Lue lisää
Mitä nämä tietomuodot ovat?
Ohjelmat tallentavat ja vaihtavat rakenteista dataa, kuten asetuksia, tietueita ja luetteloita, tekstimuodoissa, joista kukin esittää datan omalla tavallaan. Muunnin on kätevä, kun jokin ohjelma antaa dataa muodossa, jota toinen ohjelma ei osaa lukea, tai kun jokin muoto on helpompi lukea tai muokata kyseistä tehtävää varten.
| Muoto | Miten data esitetään | Missä sitä käytetään |
|---|---|---|
| JSON | Oliot aaltosulkeissa, luettelot hakasulkeissa, teksti lainausmerkeissä | Web-rajapinnoissa ja sovellusten asetuksissa |
| YAML | Sisennetyt key: value -rivit, luettelon alkiot alkavat merkillä - |
Docker Composessa, Kubernetesissä ja CI-putkien tiedostoissa |
| XML | Elementit tageissa, joilla voi olla attribuutteja | Asiakirjoissa, RSS-syötteissä ja SOAP-verkkopalveluissa |
| TOML | key = value -rivit [table]-otsikoiden alla |
Asetustiedostoissa, kuten Cargo.toml ja pyproject.toml |
| TOON | Sisennetyt rivit, tietuetiedot luetteloina rivien muodossa kenttien alla | Rakenteisessa datassa, jota lähetetään tekoälyn kielimalleille |
| CSV | Otsikkorivi, jota seuraa yksi rivi kutakin tietuetta kohti; arvot erotetaan pilkuilla | Taulukkolaskennassa ja tietokantavienneissä |
| TSV | Kuten CSV, mutta arvot erotetaan sarkaimilla | Taulukkolaskennasta kopioiduissa soluissa |
| MessagePack | Binaaridataa, joka näytetään Teksti-välilehdellä heksadesimaalitavuina | Ohjelmien välisissä tiiviissä viesteissä |
| JSON5 | JSON, joka sallii myös kommentit, yksinkertaiset lainausmerkit ja lainausmerkeittä kirjoitetut avaimet | Käsin kirjoitetuissa asetustiedostoissa |
| JSONL | Yksi JSON-arvo riviä kohden; kutsutaan myös JSON Lines- tai NDJSON-muodoksi | Lokitiedoissa ja tietojoukoissa |
| INI | key = value -rivit [section]-otsikoiden alla |
Ohjelmien asetustiedostoissa, kuten php.ini |
| Ominaisuustiedostot | key = value -rivit pisteillä erotelluilla avaimilla |
Java-sovelluksissa, kuten Spring Bootin application.properties-tiedostoissa |
Työkalun kuvaus
Tämä työkalu muuntaa dataa näiden 12 muodon välillä: JSON, YAML, XML, TOML, TOON, CSV, TSV, MessagePack, JSON5, JSONL, INI ja Java properties. Kaikki tämän työkalun tietomuotomuuntimet toimivat samalla tavalla, yleisestä tietomuotomuuntimesta yksittäisen muotoparin muuntimiin, kuten JSONista YAMLiksi, CSV:stä JSONiksi tai XML:stä JSONiksi: muunnin avautuu nimessään mainituilla muodoilla, ja Lähde- ja Kohde-valikoista voi valita mitkä tahansa muut muodot.
Muuntimet ottavat datan vastaan tekstinä, jonka liität tai kirjoitat, tai tiedostoina, ja antavat tuloksen tekstinä tai tiedostoina. Valitse tapa lähdepuolen ja kohdepuolen yläreunassa olevilla Tiedosto- ja Teksti-välilehdillä. Kummallakin puolella on aluksi valittuna Teksti.
- Teksti syötteenä: liitä tai kirjoita data, niin se muunnetaan kirjoittaessasi.
- Tiedosto syötteenä: valitse tai vedä ja pudota yksi tai useampi tiedosto. Selaa tiedostoja -painike näyttää vain lähdemuodon tiedostot, mutta pudotetut tiedostot voivat olla missä tahansa 12 muodosta, ja kukin muunnetaan siitä muodosta, jonka sen tiedostopääte ilmaisee, joten .yaml-tiedosto muunnetaan YAML-muodosta myös muuntimessa, joka muuntaa JSONista XML:ksi. Pudotettu tiedosto, jolla on muu pääte, kuten .txt, muunnetaan lähdemuodosta. Myös UTF-16-tiedostot ja vanhaa merkistökoodausta, kuten Windows-1252:ta, käyttävät tiedostot luetaan.
- Teksti tuloksena: tulos näkyy syntaksikorostetussa koodieditorissa valmiina kopioitavaksi. Kun muunnetaan useita tiedostoja, sen yläpuolella olevasta Tiedosto-valikosta valitaan näytettävä tiedosto.
- Tiedosto tuloksena: muunnetut tiedostot näkyvät ruudukossa, jokaisella oma Lataa-painike, ja ne säilyttävät tiedostonimensä uudella päätteellä. Lataa kaikki -painike tallentaa kaikki muunnetut tiedostot yhteen ZIP-tiedostoon tai yksittäisen muunnetun tiedoston sellaisenaan. Liitetystä datasta tulee yksi tiedosto nimeltä converted, esimerkiksi converted.yaml. Muunnetut tiedostot ovat UTF-8-tekstiä, paitsi MessagePack-tiedostot, jotka ovat binaarisia.
Vaihtopainike kääntää muunnoksen suunnan: kohdemuodosta tulee lähdemuoto, puolet vaihtavat välilehtiä keskenään ja tuloksesta tulee uusi syöte.
Jos syöte ei ole kelvollinen lähdemuodossa, virheilmoitus kertoo, mikä on vialla, yleensä ongelman rivin ja sarakkeen. Tiedostojen kohdalla virheilmoitus nimeää tiedostot, joiden muuntaminen epäonnistui, ja kohdepuolen Teksti-välilehti kertoo yksityiskohdat siinä näkyvästä tiedostosta.
Data muunnetaan selaimessasi, eikä sitä koskaan ladata palvelimelle.
Esimerkki
Tämä JSON:
{
"users": [
{ "id": 1, "name": "Ann", "admin": true },
{ "id": 2, "name": "Bo", "admin": false }
]
}muuttuu tällaiseksi YAMLiksi:
users:
- id: 1
name: Ann
admin: true
- id: 2
name: Bo
admin: falsetällaiseksi CSV:ksi, jossa on yksi rivi käyttäjää kohden:
id,name,admin
1,Ann,true
2,Bo,falseja tällaiseksi TOONiksi:
users[2]{id,name,admin}:
1,Ann,true
2,Bo,falseMiten muodot vastaavat toisiaan
Muodot eivät kaikki pysty esittämään samanlaisia tietoja, joten joissakin muunnoksissa noudatetaan seuraavia sääntöjä:
- CSV ja TSV sisältävät taulukon. Ensimmäinen rivi nimeää sarakkeet, ja jokaisesta muusta rivistä tulee olio. Sisäkkäisistä olioista tulee niiden polun mukaan nimetyt sarakkeet, ja luetteloista tulee soluihinsa JSON-tekstiä, joten
{"name": "Ann", "address": {"city": "Oslo"}, "tags": ["a", "b"]}muuttuu sarakkeiksiname,address.cityjatags. Takaisin muunnettaessa näistä sarakkeista tulee jälleen sisäkkäisiä olioita ja luetteloita. Kun data on olio, joka sisältää yhden luettelon, kuten{"users": [...]}, rivit muodostuvat luettelon alkioista, ja luetteloiden luettelosta tulee rivejä ilman otsikkoa. - Tekstiarvot: CSV, TSV, XML, INI ja properties sisältävät vain tekstiä, joten muuntimet muuttavat arvot
truejafalsetotuusarvoiksi sekä selkeästi kirjoitetut luvut, kuten42tai3.5, numeroiksi. Arvot, kuten007,1.50tai1e3, säilyvät tekstinä, jotta postinumerot ja versionumerot pysyvät täsmälleen alkuperäisessä muodossaan. - XML: attribuuteista tulee avaimia, joiden alussa on
@, ja attribuutteja sisältävän elementin tekstistä tulee#text:<price currency="USD">44.95</price>muuttuu muotoon{"@currency": "USD", "#text": 44.95}. Toistuvista elementeistä tulee luettelo. XML-muotoon muunnettaessa@-merkillä alkavista avaimista tulee jälleen attribuutteja. Oliosta, jossa on yksi avain, jonka arvo ei ole luettelo, tulee juurielementti. Muu data sijoitetaan<root>-elementtiin, ja luettelon ylimmän tason kukin alkio sijoitetaan<item>-elementtiin. Merkit, joita ei voi käyttää XML-nimissä, kuten välilyönnit, korvataan_-merkillä. - TOML, INI ja properties voivat sisältää ylimmällä tasolla vain nimettyjä arvoja, joten luettelomuotoinen data kirjoitetaan nimen
itemsalle ja yksittäinen arvo nimenvaluealle. TOML ei tue null-arvoja, joten ne jätetään pois. - INI kirjoittaa sisäkkäiset oliot osioiksi, kuten
[server.ssl], arvoluettelot riveiksi muodossakey[] = valueja olioluettelot sijaintinsa mukaan nimetyiksi osioiksi, kuten[users.0]. - Properties yhdistää sisäkkäiset nimet pisteillä ja merkitsee luettelon alkioiden järjestysnumerot hakasulkeisiin, kuten
app.hosts[0], Spring Bootin tapaan. YAML- tai JSON-muotoon muunnettaessa näistä avaimista tulee sisäkkäisiä olioita ja luetteloita, jotenapplication.properties-tiedosto muunnetaanapplication.yml-tiedoston rakennetta vastaavaksi. Latin-1-merkistön ulkopuoliset merkit kirjoitetaan\u-koodauksina. - YAML-tuloksissa lainausmerkkeihin laitetaan teksti, jonka YAML 1.1 -lukijat tulkitsisivat joksikin muuksi, kuten
on,yestai päivämäärä. Näin YAML 1.1- ja YAML 1.2 -lukijat saavat saman datan. YAML-tiedostosta, jossa on useita----merkillä erotettuja dokumentteja, tulee luettelo näistä dokumenteista, ja<<-yhdistämisavaimet täydennetään. - MessagePack on binaarimuoto. Tekstinä työkalut lukevat ja kirjoittavat sitä heksadesimaalisina tavuina:
{"a": 1}on81 A1 61 01, ja syötteessä voi olla välilyöntejä, pilkkuja ja kunkin tavun edessä0x. Tiedosto-välilehdellä valitut tai tallennetut MessagePack-tiedostot sisältävät itse tavut, joten muunnettu .msgpack-tiedosto on binaarinen. Useista peräkkäisistä viesteistä tulee luettelo. - JSONL-tuloksissa kukin luettelon alkio on omalla rivillään.
- Kokonaisluvut, jotka ovat liian suuria JavaScriptin numeroiksi, kuten 64-bittiset tunnisteet, säilyttävät kaikki numeronsa.
- TOML-päivämääristä ja -ajoista sekä MessagePack-aikaleimoista tulee tekstiä, kuten
1979-05-27T07:32:00Z.
Vinkkejä
- Jos haluat muuntaa taulukkolaskennan soluja, kopioi ne ja liitä ne TSV-muodossa: taulukkolaskentasovellukset kopioivat solut sarkaimilla erotettuna tekstinä.
- CSV ja TSV sopivat dataan, joka koostuu samankaltaisten tietueiden luettelosta. Syvästi sisäkkäistä dataa on helpompi lukea YAML-, TOML- tai TOON-muodossa.
- YAML-, XML-, TOML-, JSON5-, INI- ja properties-tiedostojen kommentteja ei säilytetä, koska muuntimet siirtävät vain datan.