Прескочи на садржај

CSV у JSON Конвертор - Бесплатни Онлајн Алат за Конвертовање Датотека

Конвертујте CSV у JSON и JSON у CSV тренутно у вашем прегледачу. Безбедна, брза конверзија података са прегледом и преузимањем. Без потребе за отпремањем датотека.

Конвертор CSV/JSON датотека

Једноставно конвертујте између CSV и JSON формата. Отпремите датотеку, прегледајте податке и преузмите конвертовани резултат.

CSV у JSON конвертор

JSON у CSV конвертор

Kalkulator učitavanja...
📚

Dokumentacija

Šta je konvertor iz CSV-a u JSON?

Konvertor iz CSV-a u JSON je alat koji menja podatke iz formata CSV (vrednosti razdvojene zarezima) u format JSON (JavaScript Object Notation), ili obrnuto. Ovaj konvertor radi potpuno unutar veb pregledača. Otpremljenu datoteku nikada ne šalje na server, tako da podaci ostaju na uređaju korisnika.

CSV je format običnog teksta koji se koristi za čuvanje tabela, kao što su tabele izvezene iz programa Excel ili Google Sheets. JSON je tekstualni format zasnovan na parovima ključ-vrednost i široko se koristi za prenos podataka između veb-aplikacija i API-ja. Pošto ova dva formata organizuju podatke na različite načine, konvertovanje između njih zahteva definisan skup pravila, opisan u nastavku.

Kako konvertovati CSV u JSON

  1. Kliknite na „Otpremi CSV datoteku“ i izaberite datoteku .csv sa uređaja.
  2. Alat prikazuje pregled sadržaja sirove datoteke.
  3. Kliknite na „Konvertuj u JSON“. Alat prvi red čita kao zaglavlja kolona, a svaki naredni red pretvara u jedan JSON objekat.
  4. Rezultat se pojavljuje u pregledu izlaza, formatiran sa uvlačenjem.
  5. Kliknite na „Preuzmi JSON“ da biste sačuvali datoteku kao .json, ili na „Kopiraj JSON“ da biste kopirali tekst.

Kako konvertovati JSON u CSV

  1. Kliknite na „Otpremi JSON datoteku“ i izaberite datoteku .json. Datoteka mora da sadrži JSON niz objekata, na primer [{"Name":"Ann"},{"Name":"Bo"}].
  2. Alat prikazuje pregled sirovog JSON teksta.
  3. Kliknite na „Konvertuj u CSV“. Alat prikuplja svaki ključ koji se koristi u svim objektima i svaki ključ pretvara u kolonu.
  4. Rezultat se pojavljuje u pregledu izlaza kao CSV tekst.
  5. Kliknite na „Preuzmi CSV“ da biste sačuvali datoteku kao .csv, ili na „Kopiraj CSV“ da biste kopirali tekst.

Ne postoje ograničenja za otpremanje koja nameće server, jer nijedan podatak ne napušta pregledač. Veoma velika datoteka ipak može da uspori karticu pregledača, pošto se tokom konvertovanja cela datoteka čuva u memoriji.

Pravila konvertovanja iz CSV-a u JSON

Konvertor prvi red datoteke čita kao nazive kolona. Svaki naredni red postaje jedan JSON objekat, sa nazivima kolona kao ključevima. Red sa više vrednosti nego što ima zaglavlja dobija dodatne ključeve imenovane prema apsolutnom položaju u redu, pa se, uz 3 zaglavlja, četvrta vrednost dobija ključ field_4, peta field_5 i tako dalje, što znači da se podaci ne gube. Red sa manje vrednosti dobija prazne nizove znakova za ključeve koji nedostaju. Ako dva zaglavlja imaju isto ime, drugo se preimenuje dodavanjem sufiksa, pa a, a postaje ključevi a i a_2.

Konvertor prati CSV pravila definisana u RFC 4180, tehničkom standardu za ovaj format. Zarez unutar polja tretira se kao vrednost u tom polju, a ne kao razdvajač kolona, samo ako je polje obuhvaćeno dvostrukim navodnicima, na primer "Smith, John". Prelom reda unutar navodnika zadržava se kao deo vrednosti, umesto da se tretira kao novi red. Dva dvostruka navodnika unutar navodnicima obuhvaćenog polja predstavljaju jedan doslovni znak navodnika.

Prepoznaju se samo zarezi kao razdvajači kolona; alat ne prepoznaje niti podržava tačke-zareze, tabulatore ili druge razdvajače.

Svaka vrednost se proverava i pretvara u određeni tip:

  • Vrednost zapisana kao običan broj, kao što su 42 ili -3.5, postaje JSON broj.
  • Tekst true ili false (bez obzira na velika i mala slova) postaje JSON logička vrednost.
  • Sve ostalo ostaje JSON niz znakova, uključujući prazne ćelije, koje postaju prazni nizovi znakova.
  • Broj sa vodećom nulom, kao što je 00512, ostaje niz znakova, jer vodeća nula često ima značenje, kao kod poštanskog broja ili identifikacionog broja.
  • Broj se prihvata samo ako njegovo ponovno ispisivanje daje potpuno isti tekst. Veliki celi brojevi iznad 9,007,199,254,740,991, najvećeg celog broja koji JavaScript broj može tačno da predstavi, obično ne prolaze ovu proveru i ostaju nizovi znakova, tako da se nijedna cifra ne gubi.
  • Vrednost koju je datoteka već obuhvatila navodnicima uvek se čuva kao niz znakova, čak i ako izgleda kao broj, pošto se navodnici tumače kao oznaka autora da je reč o tekstu.

Prazni redovi u datoteci se preskaču i ne stvaraju prazne objekte.

Pravila konvertovanja iz JSON-a u CSV

Konvertor pregledava svaki objekat u nizu i prikuplja potpuni skup ključeva koji se koriste u svim objektima. Ti ključevi postaju zaglavlja CSV kolona, redosledom kojim su prvi put pronađeni. Ako jednom objektu nedostaje ključ koji postoji u drugom objektu, njegova ćelija ostaje prazna umesto da izazove grešku.

Konvertovanje iz JSON-a u CSV ne rastavlja ugnježdene objekte u zasebne kolone. Vrednost koja je sama objekat ili niz upisuje se kao JSON tekst u jednu ćeliju, pa {"b": 1} postaje ćelija {"b":1}, a [1, 2] postaje ćelija [1,2]. Ništa se ne gubi, ali ugnježdeni deo ostaje u jednoj koloni umesto da se podeli. Ugnježdeni JSON prvo treba ručno rastaviti ako svaki deo treba da bude u sopstvenoj koloni.

Vrednost null i ključ koji jedan objekat ima, a drugom nedostaje, oba daju praznu ćeliju.

Vrednost ćelije koja sadrži zarez, znak navodnika ili prelom reda obuhvata se dvostrukim navodnicima u izlazu, a svaki znak navodnika unutar nje udvostručuje se, u skladu sa prethodno navedenim pravilom CSV izbegavanja.

Ulazni JSON mora biti niz, a svaka stavka u njemu mora biti objekat. Broj, niz znakova, null ili ugnježdeni niz na mestu objekta izaziva grešku „JSON mora biti niz objekata“. Niz u kojem nema nijedne stavke izaziva grešku „JSON niz je prazan. Dodajte najmanje jedan objekat za konvertovanje.“ Otpremljena datoteka bez ikakvog sadržaja izaziva grešku „Otpremljena datoteka je prazna.“

Primer

Početna CSV datoteka:

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

Konvertovanje u JSON daje:

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

Imajte na umu da je "Bo, Jr." zadržalo zarez zato što je polje u izvornoj datoteci bilo obuhvaćeno navodnicima, a da su Age i Member postali broj i logička vrednost.

Ponovno konvertovanje istog JSON-a u CSV, uz dodat red u kojem nedostaje Age, daje:

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

Vrednost Age koja nedostaje postaje prazna ćelija, a zarez u "Bo, Jr." dovodi do toga da polje ponovo bude obuhvaćeno navodnicima pri izlazu.

Uobičajene primene

  • Analiza podataka: pretvaranje CSV izvoza iz tabelarnog ili analitičkog alata u JSON kako bi mogao da se obrađuje pomoću JavaScript-a, a zatim vraćanje rezultata u CSV za izveštaj.
  • Testiranje API-ja: programer koji pravi API koji prihvata CSV otpremanja može da konvertuje ogledne datoteke u JSON kako bi proverio da li parser stvara očekivane objekte.
  • Migracija podataka: premeštanje zapisa iz sistema koji izvozi CSV u sistem koji prihvata samo JSON, ili obrnuto.
  • Brzi pregled: pretvaranje JSON datoteke u tabelarni CSV radi lakšeg čitanja, ili obrnuto.

Programske biblioteke nude isto konvertovanje za veće ili ponavljane poslove, kao što su moduli csv i json u Python-u ili biblioteka pandas. Alati komandne linije, kao što su csvkit i jq, obrađuju konvertovanje i filtriranje iz terminala. Te opcije odgovaraju paketnoj obradi, dok je ovaj alat u pregledaču namenjen jednokratnoj obradi datoteke bez instaliranja bilo čega.

Često postavljana pitanja

Da li se otpremljena datoteka šalje na server?
Ne. Konvertovanje se izvršava u JavaScript-u unutar kartice pregledača. Datoteka se čita sa lokalnog uređaja i nikada se ne prenosi.

Da li konvertor podržava razdvajače koji nisu zarez, kao što su tačka-zarez ili tabulator?
Ne. Trenutna verzija čita samo vrednosti razdvojene zarezima. Datoteku koja koristi drugi razdvajač prvo treba pretvoriti u oblik razdvojen zarezima, na primer zamenom razdvajača u uređivaču teksta.

Zašto je broj kao što je 00512 ostao tekstualni niz u JSON izlazu?
Vodeće nule obično imaju značenje, kao kod poštanskog broja, pa konvertor tu vrednost čuva kao niz znakova umesto da je pretvori u broj 512, čime bi se nula izgubila.

Šta se dešava ako konvertujem JSON koji sadrži ugnježdene objekte?
Ugnježdeni objekat se upisuje kao JSON tekst u jednoj ćeliji, na primer {"b":1}. Podaci ostaju sačuvani, ali se ne dele u zasebne kolone. Ugnježdene podatke prvo treba rastaviti ako svako polje treba da bude u sopstvenoj koloni.

Šta ako moj JSON nije niz objekata?
Alat prikazuje grešku i ne konvertuje ništa. Ulaz mora biti JSON niz u kojem je svaka stavka objekat, na primer [{"a":1},{"a":2}].

Da li prvi red CSV datoteke uvek mora da bude red zaglavlja?
Da. Konvertor prvi red uvek tretira kao nazive kolona. Kod datoteke bez reda zaglavlja, prvi red podataka biće pogrešno protumačen kao zaglavlje.

Reference

  1. Shafranovich, Y. „Uobičajeni format i MIME tip za datoteke vrednosti razdvojenih zarezima (CSV).“ RFC 4180, IETF, oktobar 2005. https://www.rfc-editor.org/rfc/rfc4180
  2. Bray, T., ur. „Format za razmenu podataka JavaScript Object Notation (JSON).“ RFC 8259, IETF, decembar 2017. https://www.rfc-editor.org/rfc/rfc8259
  3. „Rad sa JSON-om.“ MDN Web Docs, Mozilla. https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/JSON