Siirry sisältöön

CSV-muunnin JSON-muotoon - Ilmainen Online-tiedostonmuunnostyökalu

Muunna CSV JSON-muotoon ja JSON CSV-muotoon hetkessä selaimessasi. Turvallinen, nopea tiedonmuunnos esikatselulla ja latauksella. Ei tiedostojen lataamista vaadittu.

CSV/JSON-tiedostomuunnin

Muunna CSV- ja JSON-muotoja helposti. Lataa tiedostosi, esikatsele tiedot ja lataa muunnettu tulos.

CSV-muuntimesta JSON-muotoon

JSON-muuntimesta CSV-muotoon

Latauslaskuri...
📚

Dokumentaatio

Mikä on CSV–JSON-muunnin?

CSV–JSON-muunnin on työkalu, joka muuttaa tiedot CSV-muodosta (pilkuilla erotellut arvot) JSON-muotoon (JavaScript-objektin esitysmuoto) tai päinvastoin. Muunnin toimii kokonaan verkkoselaimessa. Se ei koskaan lähetä ladattua tiedostoa palvelimelle, joten tiedot pysyvät käyttäjän laitteella.

CSV on pelkkää tekstiä oleva muoto taulukoiden, kuten Excelistä tai Google Sheetsistä vietyjen laskentataulukoiden, tallentamiseen. JSON on avain–arvo-pareista koostuva tekstimuoto, jota käytetään laajasti tietojen siirtämiseen verkkosovellusten ja ohjelmointirajapintojen välillä. Koska nämä kaksi muotoa järjestävät tiedot eri tavoin, niiden välinen muuntaminen edellyttää alla kuvattuja määriteltyjä sääntöjä.

CSV:n muuntaminen JSON-muotoon

  1. Napsauta ”Upload CSV File” ja valitse laitteelta .csv-tiedosto.
  2. Työkalu näyttää esikatselun raakatiedoston sisällöstä.
  3. Napsauta ”Convert to JSON”. Työkalu lukee ensimmäisen rivin sarakeotsikoiksi ja muuttaa jokaisen muun rivin yhdeksi JSON-objektiksi.
  4. Tulos näkyy sisennettynä tulosteen esikatselussa.
  5. Tallenna tulos .json-tiedostona napsauttamalla ”Download JSON” tai kopioi teksti napsauttamalla ”Copy JSON”.

JSONin muuntaminen CSV-muotoon

  1. Napsauta ”Upload JSON File” ja valitse .json-tiedosto. Tiedoston on sisällettävä objekteista koostuva JSON-taulukko, esimerkiksi [{"Name":"Ann"},{"Name":"Bo"}].
  2. Työkalu näyttää esikatselun JSON-raakatekstistä.
  3. Napsauta ”Convert to CSV”. Työkalu kokoaa kaikki objekteissa käytetyt avaimet ja muuttaa jokaisen niistä sarakkeeksi.
  4. Tulos näkyy tuloksen esikatselussa CSV-tekstinä.
  5. Tallenna tulos .csv-tiedostona napsauttamalla ”Download CSV” tai kopioi teksti napsauttamalla ”Copy CSV”.

Palvelin ei aseta latauksille rajoituksia, koska mitkään tiedot eivät poistu selaimesta. Hyvin suuri tiedosto voi silti hidastaa selaimen välilehteä, koska koko tiedosto säilytetään muistissa muunnon aikana.

CSV:n muuntamisen säännöt JSON-muotoon

Muunnin lukee tiedoston ensimmäisen rivin sarakkeiden nimiksi. Jokaisesta seuraavasta rivistä tulee yksi JSON-objekti, jonka avaimina ovat sarakkeiden nimet. Jos rivillä on enemmän arvoja kuin otsikoita, ylimääräiset avaimet nimetään niiden absoluuttisen sijainnin perusteella. Jos otsikoita on siis 3, neljännen arvon avaimeksi tulee field_4, viidennen field_5 ja niin edelleen, joten tietoja ei menetetä. Jos rivillä on vähemmän arvoja, puuttuvien avainten arvoksi tulee tyhjä merkkijono. Jos kahdella otsikolla on sama nimi, toinen nimetään uudelleen jälkiliitteellä: a, a muuttuu avaimiksi a ja a_2.

Muunnin noudattaa RFC-standardissa 4180 määriteltyjä CSV-sääntöjä. Pilkkua kentän sisällä käsitellään kyseisen kentän arvona eikä sarake-erottimena vain silloin, kun kenttä on ympäröity lainausmerkeillä, esimerkiksi "Smith, John". Lainausmerkkien sisällä oleva rivinvaihto säilytetään osana arvoa eikä sitä käsitellä uutena rivinä. Kaksi lainausmerkkiä lainausmerkeillä ympäröidyssä kentässä merkitsee yhtä kirjaimellista lainausmerkkiä.

Sarake-erottimena tunnistetaan vain pilkut; työkalu ei tunnista eikä tue puolipisteitä, sarkaimia tai muita erottimia.

Jokainen arvo tarkistetaan ja muunnetaan tyypiksi:

  • Pelkkänä lukuna kirjoitettu arvo, kuten 42 tai -3.5, muuttuu JSON-luvuksi.
  • Teksti true tai false (kirjainkoosta riippumatta) muuttuu JSON-totuusarvoksi.
  • Kaikki muu säilyy JSON-merkkijonona, myös tyhjät solut, joista tulee tyhjiä merkkijonoja.
  • Alkunollan sisältävä luku, kuten 00512, säilyy merkkijonona, koska alkunolla on usein merkityksellinen esimerkiksi postinumerossa tai tunnistenumerossa.
  • Luku hyväksytään vain, jos sen kirjoittaminen takaisin tuottaa täsmälleen saman tekstin. JavaScript-luvun tarkasti esittämää suurinta kokonaislukua 9,007,199,254,740,991 suuremmat pitkät kokonaisluvut eivät yleensä läpäise tätä tarkistusta, vaan säilyvät merkkijonoina, joten numeroita ei menetetä.
  • Tiedoston lainausmerkeillä ympäröimä arvo säilytetään aina merkkijonona, vaikka se näyttäisi luvulta, koska lainausmerkkien katsotaan osoittavan tekijän tarkoittaneen sen tekstiksi.

Tiedoston tyhjät rivit ohitetaan, eivätkä ne tuota tyhjiä objekteja.

JSONin muuntamisen säännöt CSV-muotoon

Muunnin käy läpi taulukon jokaisen objektin ja kokoaa kaikki niissä käytetyt avaimet. Avaimista tulee CSV-sarakkeiden otsikot siinä järjestyksessä, jossa ne esiintyvät ensimmäisen kerran. Jos yhdeltä objektilta puuttuu avain, joka toisella objektilla on, sen solu jätetään tyhjäksi virheen sijaan.

JSONia CSV-muotoon muunnettaessa sisäkkäisiä objekteja ei litistetä erillisiksi sarakkeiksi. Jos arvo on objekti tai taulukko, se kirjoitetaan JSON-tekstinä yhteen soluun, joten {"b": 1} muuttuu soluksi {"b":1} ja [1, 2] soluksi [1,2]. Mitään ei menetetä, mutta sisäkkäinen osa pysyy yhdessä sarakkeessa sen sijaan, että se jaettaisiin osiin. Sisäkkäinen JSON on litistettävä ensin manuaalisesti, jos jokaiselle osalle tarvitaan oma sarakkeensa.

Arvo null sekä avain, joka on yhdellä objektilla mutta puuttuu toiselta, tuottavat tyhjän solun.

Solun arvo, joka sisältää pilkun, lainausmerkin tai rivinvaihdon, ympäröidään tulosteessa lainausmerkeillä, ja sen sisällä olevat lainausmerkit kaksinkertaistetaan edellä kuvatun CSV-merkintäsäännön mukaisesti.

Syötettävän JSONin on oltava taulukko, ja jokaisen sen alkion on oltava objekti. Jos objektin tilalla on luku, merkkijono, null tai sisäkkäinen taulukko, tulokseksi tulee virhe ”JSON must be an array of objects”. Tyhjä taulukko tuottaa virheen ”The JSON array is empty. Add at least one object to convert.” Sisällötön ladattu tiedosto tuottaa virheen ”The uploaded file is empty.”

Laskuesimerkki

Lähtöaineistona oleva CSV-tiedosto:

1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4

Sen muuntaminen JSON-muotoon tuottaa:

1[
2  {
3    "Name": "Ann Lee",
4    "Age": 29,
5    "Member": true
6  },
7  {
8    "Name": "Bo, Jr.",
9    "Age": 7,
10    "Member": false
11  }
12]
13

Huomaa, että "Bo, Jr." säilytti pilkkunsa, koska kenttä oli ympäröity lainausmerkeillä lähdetiedostossa, ja Age sekä Member muuttuivat luvuksi ja totuusarvoksi.

Saman JSONin muuntaminen takaisin CSV-muotoon siten, että mukaan lisätään rivi, jolta Age puuttuu, tuottaa:

1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4Cy Tan,,true
5

Puuttuvasta Age-arvosta tulee tyhjä solu, ja kohteessa "Bo, Jr." oleva pilkku aiheuttaa kentän ympäröimisen lainausmerkeillä uudelleen tulostuksen yhteydessä.

Tavallisia käyttökohteita

  • Tietojen analysointi: laskentataulukosta tai analyysityökalusta viedyn CSV-tiedoston muuttaminen JSON-muotoon, jotta sitä voidaan käsitellä JavaScriptillä, ja tulosten muuntaminen sitten takaisin CSV-muotoon raporttia varten.
  • Ohjelmointirajapintojen testaus: CSV-latauksia hyväksyvää ohjelmointirajapintaa rakentava kehittäjä voi muuntaa esimerkkitiedostoja JSON-muotoon tarkistaakseen, tuottaako jäsennin odotetut objektit.
  • Tietojen siirtäminen: tietueiden siirtäminen CSV-tiedostoja vievästä järjestelmästä järjestelmään, joka hyväksyy vain JSONia, tai päinvastoin.
  • Nopea tarkastelu: JSON-tiedoston muuttaminen taulukkomaiseksi CSV-tiedostoksi lukemisen helpottamiseksi tai päinvastoin.

Ohjelmointikirjastot tarjoavat saman muunnoksen suurempia tai toistuvia tehtäviä varten, kuten Pythonin csv- ja json-moduulit tai pandas. Komentorivityökalut, kuten csvkit ja jq, hoitavat muunnoksen ja suodatuksen päätelaitteessa. Ne sopivat eräkäsittelyyn, kun taas tämä selainpohjainen työkalu sopii kertaluonteisen tiedoston käsittelyyn ilman asennuksia.

Usein kysyttyä

Lähetetäänkö ladattu tiedosto palvelimelle? Ei. Muunnos suoritetaan JavaScriptillä selaimen välilehdessä. Tiedosto luetaan paikalliselta laitteelta eikä sitä koskaan lähetetä eteenpäin.

Tukeeko muunnin muita erottimia kuin pilkkua, esimerkiksi puolipistettä tai sarkainta? Ei. Nykyinen versio lukee vain pilkuilla eroteltuja arvoja. Eri erotinta käyttävä tiedosto on ensin muunnettava pilkuilla eroteltuun muotoon esimerkiksi korvaamalla erotin tekstieditorissa.

Miksi luku kuten 00512 säilyi JSON-tulosteessa tekstimerkkijonona? Alkunollat ovat yleensä merkityksellisiä, kuten postinumerossa, joten muunnin säilyttää arvon merkkijonona sen sijaan, että muuttaisi sen luvuksi 512, jolloin nolla katoaisi.

Mitä tapahtuu, jos muunnan JSONin, joka sisältää sisäkkäisiä objekteja? Sisäkkäinen objekti kirjoitetaan JSON-tekstinä yhteen soluun, esimerkiksi {"b":1}. Tiedot säilyvät, mutta niitä ei jaeta erillisiksi sarakkeiksi. Litistä sisäkkäiset tiedot ensin, jos jokaiselle kentälle tarvitaan oma sarakkeensa.

Entä jos JSONini ei ole objekteista koostuva taulukko? Työkalu näyttää virheen eikä muunna mitään. Syötteen on oltava JSON-taulukko, jonka jokainen alkio on objekti, esimerkiksi [{"a":1},{"a":2}].

Onko CSV-tiedoston ensimmäisen rivin aina oltava otsikkorivi? Kyllä. Muunnin käsittelee ensimmäisen rivin aina sarakkeiden niminä. Jos tiedostossa ei ole otsikkoriviä, ensimmäinen tietorivi tulkitaan virheellisesti otsikoiksi.

Viitteet

  1. Shafranovich, Y. "Common Format and MIME Type for Comma-Separated Values (CSV) Files." RFC 4180, IETF, lokakuu 2005. https://www.rfc-editor.org/rfc/rfc4180
  2. Bray, T., toim. "The JavaScript Object Notation (JSON) Data Interchange Format." RFC 8259, IETF, joulukuu 2017. https://www.rfc-editor.org/rfc/rfc8259
  3. "Working with JSON." MDN Web Docs, Mozilla. https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/JSON