Preskoči na vsebino

Pretvornik CSV v JSON - Brezplačno spletno orodje za pretvorbo datotek

Takoj pretvorite CSV v JSON in JSON v CSV v vašem brskalniku. Varna, hitra pretvorba podatkov s predogledom in prenosom. Brez nalaganja datotek.

Pretvornik CSV/JSON datotek

Preprosto pretvarjajte med formatoma CSV in JSON. Naložite datoteko, preglejte podatke in prenesite pretvorjen rezultat.

Pretvornik CSV v JSON

Pretvornik JSON v CSV

Kalkulator nalaganja...
📚

Dokumentacija

Kaj je pretvornik CSV v JSON?

Pretvornik CSV v JSON je orodje, ki podatke iz zapisa CSV (vrednosti, ločene z vejicami) pretvori v zapis JSON (JavaScript Object Notation) ali obratno. Pretvornik deluje v celoti v spletnem brskalniku. Naložene datoteke nikoli ne pošlje strežniku, zato podatki ostanejo v uporabnikovi napravi.

CSV je zapis v navadnem besedilu, ki se uporablja za shranjevanje tabel, na primer preglednic, izvoženih iz programov Excel ali Google Preglednice. JSON je besedilni zapis, zgrajen iz parov ključ–vrednost, ki se pogosto uporablja za prenos podatkov med spletnimi aplikacijami in API-ji. Ker formata podatke organizirata različno, je za pretvarjanje med njima potreben spodaj opisan nabor pravil.

Kako pretvoriti CSV v JSON

  1. Kliknite »Upload CSV File« in v napravi izberite datoteko .csv.
  2. Orodje prikaže predogled neobdelane vsebine datoteke.
  3. Kliknite »Convert to JSON«. Orodje prvo vrstico prebere kot glave stolpcev, vsako drugo vrstico pa pretvori v en objekt JSON.
  4. Rezultat se prikaže v predogledu izhoda, oblikovan z zamiki.
  5. Kliknite »Download JSON«, da ga shranite kot datoteko .json, ali »Copy JSON«, da kopirate besedilo.

Kako pretvoriti JSON v CSV

  1. Kliknite »Upload JSON File« in izberite datoteko .json. Datoteka mora vsebovati polje objektov JSON, na primer [{"Name":"Ann"},{"Name":"Bo"}].
  2. Orodje prikaže predogled neobdelanega besedila JSON.
  3. Kliknite »Convert to CSV«. Orodje zbere vse ključe, uporabljene v vseh objektih, in vsakega pretvori v stolpec.
  4. Rezultat se v predogledu izhoda prikaže kot besedilo CSV.
  5. Kliknite »Download CSV«, da ga shranite kot datoteko .csv, ali »Copy CSV«, da kopirate besedilo.

Strežnik ne uveljavlja omejitev glede nalaganja, ker noben podatek ne zapusti brskalnika. Zelo velika datoteka lahko kljub temu upočasni zavihek brskalnika, saj se med pretvarjanjem celotna datoteka hrani v pomnilniku.

Pravila pretvarjanja CSV v JSON

Pretvornik prvo vrstico datoteke prebere kot imena stolpcev. Vsaka naslednja vrstica postane en objekt JSON, pri čemer so imena stolpcev ključi. Vrstica z več vrednostmi, kot je glav, dobi dodatne ključe, poimenovane glede na njihov absolutni položaj v vrstici; pri 3 glavah ima četrta vrednost ključ field_4, peta field_5 in tako naprej, zato se noben podatek ne izgubi. Vrstica z manj vrednostmi dobi za manjkajoče ključe prazne nize. Če imata dve glavi isto ime, se druga preimenuje s pripono, tako da a, a postane ključa a in a_2.

Pretvornik upošteva pravila CSV, določena v RFC 4180, tehničnem standardu za ta zapis. Vejica znotraj polja se obravnava kot vrednost znotraj tega polja in ne kot ločilo stolpcev samo, če je polje obdano z dvojnimi narekovaji, na primer "Smith, John". Prelom vrstice znotraj narekovajev ostane del vrednosti in se ne obravnava kot nova vrstica. Dva dvojna narekovaja znotraj polja v narekovajih predstavljata en dobesedni znak dvojnega narekovaja.

Kot ločilo stolpcev se prepoznavajo samo vejice; orodje ne zazna in ne podpira podpičij, tabulatorjev ali drugih ločil.

Vsaka vrednost se preveri in pretvori v določen podatkovni tip:

  • Vrednost, zapisana kot navadno število, na primer 42 ali -3.5, postane število JSON.
  • Besedilo true ali false (ne glede na velikost črk) postane logična vrednost JSON.
  • Vse drugo ostane niz JSON, vključno s praznimi celicami, ki postanejo prazni nizi.
  • Število z vodilno ničlo, na primer 00512, ostane niz, ker je vodilna ničla pogosto pomembna, na primer pri poštni številki ali identifikacijski številki.
  • Število je sprejeto samo, če zapis pri ponovnem izpisu da popolnoma isto besedilo. Dolga cela števila nad 9,007,199,254,740,991, največjim celim številom, ki ga JavaScriptovo število natančno hrani, tega preverjanja običajno ne prestanejo in ostanejo nizi, zato se nobena števka ne izgubi.
  • Vrednost, ki jo je datoteka že dala v narekovaje, se vedno ohrani kot niz, tudi če je videti kot število, saj se uporaba narekovajev obravnava kot avtorjeva oznaka, da gre za besedilo.

Prazne vrstice v datoteki se preskočijo in ne ustvarijo praznih objektov.

Pravila pretvarjanja JSON v CSV

Pretvornik pregleda vsak objekt v polju in zbere celoten nabor ključev, uporabljenih v vseh objektih. Ti ključi postanejo glave stolpcev CSV v vrstnem redu, v katerem se prvič pojavijo. Če objektu manjka ključ, ki obstaja v drugem objektu, njegova celica ostane prazna, namesto da bi prišlo do napake.

Pretvarjanje JSON v CSV ne splošči ugnezdenih objektov v ločene stolpce. Vrednost, ki je sama objekt ali polje, se zapiše kot besedilo JSON v eni sami celici, tako da {"b": 1} postane celica {"b":1}, [1, 2] pa celica [1,2]. Nič se ne izgubi, vendar ugnezdeni del ostane v enem stolpcu, namesto da bi se razdelil. Če vsak del potrebuje svoj stolpec, ugnezdeni JSON najprej ročno sploščite.

Vrednost null in ključ, ki ga ima en objekt, drugemu pa manjka, ustvarita prazno celico.

Vrednost celice, ki vsebuje vejico, narekovaj ali prelom vrstice, je v izhodu obdana z dvojnimi narekovaji, vsak narekovaj v njej pa se podvoji, skladno z zgoraj opisanim pravilom ubežanja CSV.

Vhodni JSON mora biti polje, vsak njegov element pa mora biti objekt. Število, niz, null ali ugnezdeno polje namesto objekta povzroči napako »JSON must be an array of objects«. Polje brez elementov povzroči napako »The JSON array is empty. Add at least one object to convert.«. Naložena datoteka brez vsebine povzroči napako »The uploaded file is empty.«.

Rešen primer

Začetna datoteka CSV:

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

Po pretvorbi v JSON dobimo:

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

Upoštevajte, da je "Bo, Jr." ohranil vejico, ker je bilo polje v izvorni datoteki v narekovajih, Age in Member pa sta postala število oziroma logična vrednost.

Če isti JSON pretvorimo nazaj v CSV in dodamo vrstico, v kateri manjka Age, dobimo:

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

Manjkajoča vrednost Age postane prazna celica, vejica v "Bo, Jr." pa povzroči, da je polje pri izpisu znova v narekovajih.

Pogoste uporabe

  • Analiza podatkov: pretvorba izvoza CSV iz preglednice ali analitičnega orodja v JSON, da ga je mogoče obdelati z JavaScriptom, nato pa pretvorba rezultatov nazaj v CSV za poročilo.
  • Preizkušanje API-jev: razvijalec, ki izdeluje API za sprejemanje datotek CSV, lahko vzorčne datoteke pretvori v JSON in preveri, ali razčlenjevalnik ustvari pričakovane objekte.
  • Selitev podatkov: prenos zapisov iz sistema, ki izvaža CSV, v sistem, ki sprejema samo JSON, ali obratno.
  • Hiter pregled: pretvorba datoteke JSON v CSV v obliki tabele za lažje branje ali obratno.

Programerske knjižnice ponujajo enako pretvorbo za večja ali ponavljajoča se opravila, na primer modula csv in json v Pythonu ali pandas. Orodja ukazne vrstice, kot sta csvkit in jq, omogočajo pretvarjanje in filtriranje v terminalu. Te možnosti so primerne za paketno obdelavo, to brskalniško orodje pa za enkratno datoteko brez nameščanja.

Pogosta vprašanja

Ali se naložena datoteka pošlje strežniku? Ne. Pretvarjanje poteka v JavaScriptu znotraj zavihka brskalnika. Datoteka se prebere iz lokalne naprave in se nikoli ne prenese.

Ali pretvornik podpira druga ločila poleg vejice, na primer podpičje ali tabulator? Ne. Trenutna različica bere samo vrednosti, ločene z vejicami. Datoteko, ki uporablja drugo ločilo, je treba najprej pretvoriti v zapis z vejicami, na primer tako, da ločilo zamenjate v urejevalniku besedila.

Zakaj je število, kot je 00512, v izhodu JSON ostalo besedilni niz? Vodilne ničle so običajno pomembne, na primer pri poštni številki, zato pretvornik vrednost ohrani kot niz, namesto da bi jo pretvoril v število 512, pri čemer bi se ničla izgubila.

Kaj se zgodi, če pretvorim JSON, ki vsebuje ugnezdene objekte? Ugnezdeni objekt se zapiše kot besedilo JSON v eni sami celici, na primer {"b":1}. Podatki se ohranijo, vendar se ne razdelijo v ločene stolpce. Če vsako polje potrebuje svoj stolpec, ugnezdene podatke najprej sploščite.

Kaj se zgodi, če moj JSON ni polje objektov? Orodje prikaže napako in ne pretvori ničesar. Vhod mora biti polje JSON, v katerem je vsak element objekt, na primer [{"a":1},{"a":2}].

Ali mora biti prva vrstica datoteke CSV vedno vrstica z glavami? Da. Pretvornik prvo vrstico vedno obravnava kot imena stolpcev. Pri datoteki brez vrstice z glavami bo prvo vrstico podatkov napačno prebral kot glave.

Viri

  1. Shafranovich, Y. "Common Format and MIME Type for Comma-Separated Values (CSV) Files." RFC 4180, IETF, oktober 2005. https://www.rfc-editor.org/rfc/rfc4180
  2. Bray, T., ur. "The JavaScript Object Notation (JSON) Data Interchange Format." RFC 8259, IETF, december 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