Pretvaranje JSON‑a u CSV – kako funkcionira i na što paziti
Ova stranica omogućuje da datoteku u JSON formatu pretvorite u CSV. Sve se obrađuje u vašem pregledniku – nijedan podatak ne napušta vaše računalo. Za razliku od pretvorbe CSV‑a u Excel ili JSON‑a u Excel, ovaj smjer izravnava hijerarhijski, tipizirani format u plošnu, netipiziranu tablicu. JSON podržava objekte, polja, brojeve, logičke vrijednosti i null u ugniježđenim strukturama, dok CSV nema tipove, nema ugniježđivanja ni više listova. Pretvorba odbacuje sve informacije o tipovima, ugniježđenu strukturu i oblikovanje. Da bi se ugniježđeni JSON objekti prikazali u plošnom CSV‑u, alat izravnava ključeve objekata koristeći točkastu notaciju (npr. address.city). Polja objekata postaju retci tablice, a polja polja ostaju retci. Budući da CSV koristi delimiter, ugrađeni zarezi i prijelomi redaka moraju biti citirani – alat to radi automatski, ali vodeće nule u brojevima mogu biti izgubljene.
Zašto je ova pretvorba drugačija od ostalih
Obične pretvorbe poput CSV‑u‑Excel ili Excel‑u‑JSON prebacuju podatke između formata koji su po strukturi slični (oba podržavaju retke i stupce, iako Excel ima više listova i oblikovanje). JSON‑u‑CSV, naprotiv, mora riješiti temeljnu razliku: JSON je hijerarhijski i tipiziran, CSV je plošan i netipiziran. Alat stoga provodi izravnavanje (flattening) – svaki ugniježđeni objekt postaje skup stupaca s točkastim prefiksom. Na primjer, JSON objekt:
{
"ime": "Ana",
"adresa": {
"grad": "Zagreb",
"ulica": "Ilica"
}
}
postaje CSV redak:
| ime | adresa.grad | adresa.ulica |
|---|---|---|
| Ana | Zagreb | Ilica |
Ovo je ključna značajka koju korisnik mora razumjeti prije pretvorbe: nema automatskog ponovnog ugniježđivanja. Ako vam treba drugačije predstavljanje (npr. razdvajanje adrese u zasebne retke), alat to ne podržava – morate prilagoditi izvorni JSON prije učitavanja.
Još jedna važna razlika: obrada isključivo na klijentu. Nijedan podatak ne odlazi na server. To je ključno za privatnost, posebno kad radite s osjetljivim API odgovorima ili internim podacima. Vaš preglednik parsira datoteku, obrađuje podatke u memoriji i zapisuje pretvoreni izlaz na vaš uređaj.
Što alat prima i što daje na izlazu
Ulaz: jedna JSON datoteka. Datoteka mora biti tabularnog oblika – ili niz objekata ili niz nizova. Ako JSON nije valjan ili nije tabularan, prikazuje se poruka: Ovaj JSON je neispravan ili nema strukturu tablice.
Izlazni format: CSV. Korisnik bira delimiter: zarez (,), točka‑zarez (;) ili tabulator (\t). To je važno jer različite regije koriste različite standarde: u Hrvatskoj i većini Europe uobičajen je točka‑zarez jer je zarez decimalni separator.
Izlazni podaci: CSV datoteka spremna za preuzimanje, pregled tablice (prvih 8 redaka i 8 stupaca), broj redaka, broj stupaca i veličina datoteke.
Alat također provjerava ograničenja: ako je datoteka veća od 8 MB, prikazuje poruku Ova je datoteka prevelika. Koristite datoteku manju od {max}. Isto vrijedi za broj redaka (više od 10.000) i stupaca (više od 200) – poruke su This table has more than ‹max› rows. i This table has more than ‹max› columns. Ostale moguće pogreške: Najprije odaberite jednu datoteku., Odaberite CSV, JSON ili XLSX datoteku., Nije moguće pretvoriti ovu datoteku., Pretvorba je otkazana., Ova pretvorba traje predugo. Pokušajte s manjom datotekom.
Kako alat izravnava ugniježđene strukture
Pretvorba funkcionira na dva načina ovisno o obliku JSON‑a:
- Polje objekata – svaki objekt postaje redak. Ključevi objekata postaju stupci. Ako objekt ima ugniježđene objekte, njihovi ključevi se izravnavaju točkastom notacijom. Primjer:
[
{ "id": 1, "osoba": { "ime": "Ivan", "prezime": "Horvat" } },
{ "id": 2, "osoba": { "ime": "Marija", "prezime": "Kovač" } }
]
Postaje CSV:
| id | osoba.ime | osoba.prezime |
|---|---|---|
| 1 | Ivan | Horvat |
| 2 | Marija | Kovač |
- Polje polja – svaki unutarnji niz postaje redak. Elementi niza postaju stupci bez naziva ključeva. Primjer:
[ ["a", "b", "c"], ["1", "2", "3"] ]
Postaje CSV:
| 0 | 1 | 2 |
|---|---|---|
| a | b | c |
| 1 | 2 | 3 |
U oba slučaja gubi se eksplicitno tipiziranje. Brojevi, logičke vrijednosti (true, false) i null postaju nizovi znakova. Vodeće nule (npr. "00123" kao broj) mogu biti izgubljene jer se JSON brojevi interpretiraju numerički, a CSV ih ispisuje bez vodećih nula. Ako želite sačuvati vodeće nule, u JSON‑u morate vrijednost pisati kao niz znakova (string), npr. "00123" umjesto 123.
Pravila citiranja u CSV‑u i zašto su važna
CSV format nema službeni standard, ali općeprihvaćena pravila (RFC 4180) nalažu da se vrijednosti koje sadrže delimiter, znakove navodnika ili prijelome redaka moraju staviti u dvostruke navodnike ("). Alat to radi automatski. Primjer: ako JSON vrijednost sadrži zarez: "grad, drzava", u CSV‑u će biti "grad, drzava". Ako vrijednost sadrži dvostruke navodnike, oni se udvostručuju: vrijednost "quote" postaje ""quote"".
Ova pravila mogu stvoriti probleme pri ponovnom učitavanju CSV‑a u neke programe koji ne poštuju RFC 4180. Također, ako odaberete delimiter točka‑zarez, a vrijednosti sadrže točku‑zarez, iste će se citirati.
Tko treba ovu pretvorbu i zašto
Najčešći korisnici su:
- Razvojni inženjeri koji dobivaju JSON od API‑ja i trebaju CSV za uvoz u Excel, Google Sheets ili baze podataka (npr. PostgreSQL
COPYnaredba). - Analitičari podataka koji žele brzo pregledati strukturu JSON odgovora u tabličnom obliku bez pisanja skripti.
- Korisnici koji rade s povjerljivim podacima (npr. financijski izvještaji, medicinski podaci) i ne smiju ih otpremati na poslužitelje trećih strana – ova alatka radi lokalno u pregledniku.
- Korisnici iz regija s nestandardnim delimiterima (npr. Hrvatska, Njemačka) koji trebaju točka‑zarez umjesto zareza.
- Prototipari koji brzo žele transformirati podatke za daljnju obradu bez instaliranja alata.
Često postavljena pitanja (FAQ)
1. Zašto mi brojevi s vodećim nulama nestaju u CSV‑u?
JSON brojevi ne mogu imati vodeće nule. Ako vaša izvorna vrijednost je "0123" (string), ostaje 0123. Ako je 0123 kao numerički literal, JSON parseri ga tretiraju kao broj 123, a alat ispisuje 123. Pohranite takve vrijednosti kao stringove u JSON-u ako trebate nulu.
2. Mogu li pretvoriti JSON koji ima ugniježđene objekte više razine?
Da, alat izravnava sve razine točkastom notacijom (npr. a.b.c postaje stupac). Jedan objekt na najvišoj razini pretvara se u tablicu s jednim retkom. Ako se tablica koju trebate nalazi duboko unutar veće strukture, prvo izdvojite taj niz – inače će završiti u jednoj ćeliji kao JSON tekst.
3. Zašto dobivam poruku “Ovaj JSON je neispravan ili nema strukturu tablice.”?
Alat očekuje da je JSON jedna od dvije strukture: polje objekata ([ {... }, {... } ]) ili polje polja ([ [... ], [... ] ]). Ako je JSON sam objekt ({... }) ili ima nepravilnu strukturu (npr. objekti s različitim ključevima), alat to ne može pretvoriti u tablicu. Rješenje: pretvorite JSON tako da bude polje objekata s dosljednim ključevima.
4. Da li alat čuva null vrijednosti?
null u JSON‑u postaje prazna ćelija u CSV‑u. Nema načina razlikovati null vrijednost od praznog stringa "" u izlazu.
5. Mogu li pretvoriti JSON datoteku veću od 10 MB? Alat ima ograničenje veličine datoteke od 8 MB; veće datoteke se odbijaju s porukom Ova je datoteka prevelika. Koristite datoteku manju od {max}. Tablice su također ograničene na 10.000 redaka i 200 stupaca, a pretvorba koja traje dulje od otprilike 12 sekundi zaustavlja se s porukom Ova pretvorba traje predugo. Pokušajte s manjom datotekom.
6. Zašto mi se u CSV‑u pojavljuju dvostruki navodnici oko svih vrijednosti? To je normalno ako vrijednosti sadrže delimiter, dvostruki navodnik ili prijelom retka. Alat citira samo one vrijednosti koje to zahtijevaju. Ako vam smetaju, možete promijeniti delimiter u tabulator – tada će manje vrijednosti trebati citiranje.