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: false

tällaiseksi CSV:ksi, jossa on yksi rivi käyttäjää kohden:

id,name,admin
1,Ann,true
2,Bo,false

ja tällaiseksi TOONiksi:

users[2]{id,name,admin}:
  1,Ann,true
  2,Bo,false

Miten 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 sarakkeiksi name, address.city ja tags. 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 true ja false totuusarvoiksi sekä selkeästi kirjoitetut luvut, kuten 42 tai 3.5, numeroiksi. Arvot, kuten 007, 1.50 tai 1e3, 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 items alle ja yksittäinen arvo nimen value alle. TOML ei tue null-arvoja, joten ne jätetään pois.
  • INI kirjoittaa sisäkkäiset oliot osioiksi, kuten [server.ssl], arvoluettelot riveiksi muodossa key[] = value ja 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, joten application.properties-tiedosto muunnetaan application.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, yes tai 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} on 81 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.