Ce face această pagină
Aveți un fișier CSV – rânduri de text separate prin virgulă, punct și virgulă sau tabulator – și trebuie să-l transformați într-un fișier JSON, de regulă un tablou de obiecte în care fiecare rând devine un obiect, iar fiecare coloană o cheie. Trageți fișierul pe unealtă sau selectați-l de pe dispozitiv, alegeți „JSON” ca format de ieșire, selectați delimitatorul corect dacă CSV-ul folosește altceva decât virgula, apoi previzualizați rezultatul și descărcați JSON-ul final.
Ce diferențiază această pagină
Fără tipuri automate – totul rămâne text
CSV stochează totul ca text simplu. JSON suportă numere, valori booleene, null și structuri imbricate. Fiecare câmp CSV ajunge ca șir de caractere în rezultat, așa că numerele (prețuri, cantități), datele și identificatorii cu zerouri la început (coduri poștale, coduri de produs) nu devin automat valori numerice sau de dată – rămân șiruri, dacă nu le convertiți manual ulterior.
Fără posibilitate de imbricare
Deoarece CSV este strict o tabelă plată, conversia produce un tablou plat de obiecte plate. JSON ierarhic (obiecte în interiorul obiectelor) nu poate fi creat dintr-un fișier CSV fără reguli suplimentare pe care unealta nu le aplică. (În direcția inversă – JSON în CSV – trebuie aplatizate câmpurile imbricate.)
Delimitatorul contează
Trebuie să specificați dacă CSV-ul folosește virgule, punct și virgulă sau tabulatori. Paginile înrudite pentru JSON sau Excel nu necesită o alegere a delimitatorului.
Virgulele și liniile noi incluse sunt fragile
Regulile de citare din CSV nu sunt respectate universal. Virgulele incluse în câmpuri citate, liniile noi din interiorul celulelor și ghilimelele neescapate sunt surse frecvente de erori de parsare – mult mai frecvente decât la alte conversii de format.
Intrări și ieșiri
Intrare: Un singur fișier CSV (dacă încărcați JSON sau XLSX, unealta interpretează mai întâi acele formate ca tabele, dar scenariul principal al paginii este CSV → JSON). Unealta detectează automat formatul de intrare.
Alegerea utilizatorului: Formatul de ieșire setat pe „JSON”; delimitatorul CSV (virgulă, punct și virgulă sau tabulator) selectat dacă intrarea este CSV.
Ieșire: Un fișier JSON. Unealta afișează și o previzualizare a datelor convertite, numărul de rânduri și coloane din tabel, precum și dimensiunea fișierului de ieșire.
Reguli și cazuri limită
- Unealta parsează datele vizibile din fișierul CSV. Nu execută formule și nu păstrează formatarea (CSV nu are așa ceva).
- Dacă CSV-ul nu poate fi parsat (de exemplu, erori de citire, număr neuniform de coloane), unealta afișează:
„Acest CSV nu a putut fi analizat.” - Dacă fișierul nu conține niciun rând de date:
„Acest fișier nu are rânduri de tabel.” - Limite de rânduri sau coloane:
„Acest tabel are mai mult de ‹max› rânduri.”sau„Acest tabel are mai mult de ‹max› coloane.” - Limită de dimensiune a fișierului:
„Acest fișier este prea mare. Folosiți un fișier sub ‹max›.” - Dacă utilizatorul nu selectează niciun fișier:
„Alegeți mai întâi un fișier.” - Dacă tipul de fișier este greșit:
„Alegeți un fișier CSV, JSON sau XLSX.” - Dacă conversia durează prea mult:
„Această conversie durează prea mult. Încercați un fișier mai mic.” - Unealta nu interpretează automat numere sau date – toate valorile CSV rămân text în JSON-ul de ieșire, dacă nu le convertiți manual după descărcare.
- Zerourile conducătoare se păstrează deoarece fiecare câmp este tratat ca șir de caractere. (Dacă mai târziu încărcați JSON-ul într-un mediu care auto-tipizează, zerourile se pot pierde.)
- Liniile noi din interiorul câmpurilor CSV citate se păstrează ca
\nîn valorile șir.
Cine are nevoie de această unealtă
- Un dezvoltator care primește un export CSV dintr-o bază de date sau foaie de calcul și trebuie să alimenteze o aplicație JavaScript sau o API care așteaptă JSON.
- Un analist de date care vrea să convertească un fișier CSV vechi cu adrese (cu coduri poștale cu zerouri la început) în JSON, păstrând zerourile intacte.
- O echipă care partajează date tabelare între un coleg non-tehnic (care folosește Excel/CSV) și un stack tehnic care vorbește JSON, fără a încărca informații sensibile pe un server.
- Oricine pregătește un tabel simplu de produse, contacte sau jurnale pentru a fi folosit într-o unealtă web care citește JSON.
- Un student sau cercetător care trebuie să transforme un CSV ocazional într-un format structurat pentru o temă de programare.
Aspecte tehnice fundamentale
Delimitatori și reguli de citare
CSV-ul standard (RFC 4180) folosește virgula ca delimitator și ghilimelele pentru a cita câmpurile care conțin virgule, linii noi sau ghilimele. În practică, multe fișiere CSV nu respectă strict acest standard. Unealta oferă trei delimitatori: virgulă, punct și virgulă și tabulator. Alegerea greșită a delimitatorului duce la parsare incorectă – de exemplu, un fișier separat prin punct și virgulă parcurs cu virgula va produce coloane suplimentare și date combinate incorect.
Ghilimelele duble din interiorul unui câmp citat trebuie escapate prin dublarea lor (""). Dacă fișierul nu respectă această regulă, parsarea eșuează. La fel, liniile noi din interiorul celulelor trebuie să fie închise în ghilimele – altfel, unealta le interpretează ca sfârșit de rând.
Tipuri de date și zerouri conducătoare
Câmpurile CSV sunt întotdeauna șiruri de caractere. JSON distinge între "123" (șir) și 123 (număr). Unealta păstrează toate valorile ca șiruri, inclusiv pe cele numerice. Astfel, un câmp "00123" rămâne "00123" în JSON, nu devine 123. Dacă ulterior încărcați JSON-ul într-un mediu care auto-convertește șirurile numerice în numere (de exemplu, multe biblioteci JavaScript), zerourile se pierd – trebuie să împiedicați această auto-conversie sau să păstrați câmpurile respective ca șiruri explicit.
Aceeași situație apare pentru booleeni: "true" rămâne șirul "true", nu valoarea booleană true. Pentru null: un câmp gol în CSV devine un șir gol "", nu null JSON – cu excepția cazului în care definiți o regulă de conversie ulterioară.
Procesarea client-side pentru confidențialitate
Conversia se execută în întregime în browser, fără a încărca fișierul pe vreun server. Aceasta înseamnă că datele sensibile (adrese, numere de telefon, informații financiare) nu părăsesc niciodată dispozitivul utilizatorului. Pagina nu stochează, nu procesează și nu transmite conținutul fișierului. Aceasta este o diferență majoră față de uneltele online care trimit datele pe server pentru procesare.
Comparație cu conversia inversă (JSON → CSV)
Conversia CSV → JSON este mai simplă decât inversa. JSON poate conține obiecte imbricate, tablouri și tipuri variate – toate trebuie aplatizate pentru a încăpea într-o tabelă CSV. În schimb, CSV-ul, fiind o tabelă plată, se transpune natural într-un tablou de obiecte plate JSON. Nu există pierdere de structură sau necesitatea de a defini reguli de aplatizare. Pe de altă parte, tratarea tipurilor este diferită: la CSV → JSON, toate valorile rămân șiruri; la JSON → CSV, trebuie convertite în șiruri, ceea ce poate duce la pierderea informației de tip (de exemplu, numerele cu zerouri la început devin șiruri, dar se păstrează).
Erori comune și cum le evită unealta
- Rânduri cu număr neuniform de coloane: Unealta semnalează eroarea și nu produce JSON parțial.
- Ghilimele neescapate: Dacă un câmp conține ghilimele fără escapare, parsarea eșuează cu mesajul corespunzător.
- Liniile noi neprotejate: O linie nouă în interiorul unei celule care nu este citată este interpretată ca sfârșit de rând, ducând la date corupte. Unealta nu poate corecta această situație, ci doar o semnalează.
- Dimensiunea fișierului: Există o limită maximă, iar dacă fișierul o depășește, utilizatorul este anunțat explicit.
- Numărul de rânduri sau coloane: Limitele sunt definite; depășirea lor generează mesajul corespunzător.
Întrebări frecvente
De ce JSON-ul meu conține șiruri în loc de numere?
Pentru că CSV-ul nu conține informații despre tipurile de date. Fiecare câmp este text. Unealta păstrează acest comportament și nu face conversii automate. Dacă aveți nevoie de numere în JSON, trebuie să convertiți manual câmpurile respective după descărcare (de exemplu, cu parseInt() sau Number() în JavaScript).
Am zerouri la începutul codurilor poștale – se pierd?
Nu, pentru că toate valorile sunt tratate ca șiruri. În JSON veți vedea „00123”, nu 123. Dacă mai târziu importați JSON-ul într-un program care auto-convertește șirurile numerice în numere, zerourile se pot pierde – în acest caz, păstrați câmpul ca șir explicit sau folosiți un format JSON care nu face auto-conversie.
Ce se întâmplă dacă CSV-ul meu conține linii noi în interiorul celulelor?
Dacă aceste linii noi sunt închise în ghilimele (conform RFC 4180), ele se păstrează ca \n în șirurile JSON. Dacă nu sunt citate, parsarea eșuează și primiți mesajul „Acest CSV nu a putut fi analizat”. Verificați dacă exportul CSV respectă regulile de citare.
Pot converti un fișier cu 200.000 de rânduri?
Depinde de limitele impuse de unealtă. Dacă fișierul depășește numărul maxim de rânduri, veți primi mesajul „Acest tabel are mai mult de ‹max› rânduri.” Verificați limitele actuale pe pagină.
De ce unealta nu îmi recunoaște delimitatorul corect?
Unealta nu detectează automat delimitatorul – trebuie să îl selectați manual. Dacă alegeți virgula, dar fișierul folosește punct și virgulă, rezultatul va fi incorect. Asigurați-vă că știți ce delimitator a fost folosit la exportul CSV-ului.
Datele mele sunt confidențiale. Pot folosi această unealtă în siguranță?
Da. Toată procesarea se face local în browser. Fișierul nu este încărcat pe niciun server. Puteți folosi unealta și când sunteți offline, după ce pagina s-a încărcat inițial.