Konvertues nga CSV në JSON

Konvertoni CSV në JSON online — falas, menjëherë dhe privatisht. Skedari juaj përpunohet në shfletuesin tuaj, pa u ngarkuar kurrë në server.

Ndarësi i CSV-së
Rezultati

Skedarët e konvertuar dhe një pamje paraprake do të shfaqen këtu.

Gati. Zgjidhni një skedar tabele për ta konvertuar.

Si funksionon konvertimi

  • Rreshti i parë lexohet si kryeshi (header) — qelizat e tij bëhen emrat e fushave të JSON-it, dhe çdo rresht pasues bëhet një objekt.
  • Zgjidhni ndarësin (delimiter) që përputhet me të dhënat tuaja — presje, pikëpresje ose tabulator (tab).

Skedari juaj i tabelës konvertohet direkt në shfletuesin tuaj. Asgjë nuk ngarkohet në BroBroGo.

Pyetjet e shpeshta

Si mund të konvertoj CSV në JSON?

Tërhiqni skedarin tuaj CSV dhe klikoni konverto — skedari JSON është gati për t'u shkarkuar në pak sekonda, bashkë me një pamje paraprake të rezultatit. Çdo gjë ekzekutohet në pajisjen tuaj.

Sa të madh mund ta konvertoj skedarin?

Deri në 8 MB, 10,000 rreshta dhe 200 kolona për skedar. Setet më të mëdha të të dhënave është më mirë të ndahen fillimisht në skedarë më të vegjël.

Çka bën kjo faqe dhe pse është e veçantë

Kjo faqe merr një skedar CSV – rreshta teksti të ndarë me presje, pikëpresje ose tabula – dhe e shndërron në një skedar JSON. Skedari JSON zakonisht përmban një varg objektesh, ku çdo rresht i CSV-së bëhet një objekt dhe çdo kolonë bëhet një çelës. Përdoruesi zvarrit skedarin në faqe ose e zgjedh nga pajisja e tij, përzgjedh kufizuesin e duhur (nëse CSV përdor diçka tjetër përveç presjes), shikon paraprakisht rezultatin dhe shkarkon JSON-in e përfunduar.

Ajo që e bën këtë faqe të dallohet nga faqet e tjera të konvertimit (si JSON në CSV ose Excel në JSON) janë tre karakteristika kryesore:

  1. Asnjë tip i dhënash në burim, por JSON pret tipa. CSV ruan çdo gjë si tekst të sheshtë; JSON mbështet numra, boolean, null dhe struktura të mbivendosura. Çdo fushë e CSV-së arrin si varg teksti, kështu që numrat (çmime, sasi), datat dhe identifikuesit me zero kryesore (kodet postare, kodet e produkteve) nuk bëhen automatikisht vlera numerike ose date në JSON – ato mbeten vargje nëse nuk i trajtoni me qëllim pas konvertimit.

  2. Asnjë mbivendosje nuk është e mundur. Sepse CSV është rreptësisht një tabelë e sheshtë, konvertimi prodhon një varg objektesh të sheshta. Objektet hierarkike (objekte brenda objekteve) nuk mund të krijohen nga një skedar CSV pa rregulla shtesë që kjo faqe nuk i zbaton. (Drejtimi i kundërt – JSON në CSV – duhet të rrafshojë fushat e mbivendosura.)

  3. Kufizuesi ka rëndësi. Ju duhet të specifikoni nëse CSV-ja juaj përdor presje, pikëpresje ose tabula. Faqet e tjera (p.sh. për hyrje JSON ose Excel) nuk kërkojnë një zgjedhje të kufizuesit.

Për më tepër, thonjëzat dhe rreshtat e prera brenda fushave të thonjëzuara janë të brishta. Rregullat e thonjëzimit të CSV-së nuk ndiqen gjithmonë në mënyrë universale; presjet e integruara brenda fushave të thonjëzuara, rreshtat e rinj brenda qelizave dhe thonjëzat pa ikje janë burime të zakonshme të dështimeve të analizës, të cilat ndikojnë në këtë konvertim më shumë se në ndryshimet e tjera të formatit.

Si funksionon konvertimi në detaje

Procesi është i drejtpërdrejtë, por çdo hap ka hollësi:

  1. Ngarkimi i skedarit: Përdoruesi zgjedh një skedar nga pajisja e tij. Faqja zbulon automatikisht formatin e hyrjes – CSV, JSON ose XLSX. Nëse ngarkohet JSON ose XLSX, faqja i interpreton ato fillimisht si tabela, por skenari kryesor është CSV në JSON.

  2. Zgjedhja e kufizuesit: Vetëm kur hyrja është CSV, shfaqet një listë përzgjedhëse për kufizuesin: Presje, Pikëpresje ose Tabula. Përdoruesi duhet të dijë se çfarë kufizuesi përdor skedari i tij. Shumë skedarë CSV të eksportuar nga sisteme të ndryshme përdorin pikëpresje kur lokalja e sistemit kërkon presje si ndarës dhjetor; për shembull, Excel-i gjerman shpesh eksporton CSV me pikëpresje dhe presje si ndarës dhjetor. Faqja nuk përpiqet ta zbulojë automatikisht këtë, sepse një zbulim i tillë mund të dështojë (p.sh., nëse fusha përmban presje të brendshme).

  3. Parapamje dhe shkarkim: Pas analizimit, faqja shfaq një parapamje të të dhënave të konvertuara, numrin e rreshtave dhe kolonave në tabelë, dhe madhësinë e skedarit dalës. Përdoruesi mund të shkarkojë JSON-in e përfunduar. Nëse konvertimi dështon, shfaqet një mesazh gabimi specifik.

Shembull hyrje (CSV):

emri,mbiemri,mosha,qyteti
Ana,Marku,34,Tiranë
Bardhyl,Gjini,28,Shkodër

Dalje (JSON):

[
  {"emri": "Ana", "mbiemri": "Marku", "mosha": "34", "qyteti": "Tiranë"},
  {"emri": "Bardhyl", "mbiemri": "Gjini", "mosha": "28", "qyteti": "Shkodër"}
]

Vini re se "mosha": "34" është një varg, jo një numër. Kjo është e qëllimshme. Po të ishte "34" si numër do të humbiste zero kryesore në raste të tjera, dhe nuk do të ishte konsistente me faktin që CSV nuk ka informacion tipi.

Trajtimi i tipave: tekst kundrejt vlerave të tipizuara

CSV-ja, si format, nuk ka asnjë mënyrë për të shënuar nëse një vlerë është numër, datë, boolean ose null. Çdo gjë ruhet si tekst. JSON, nga ana tjetër, ka lloje të dhënash: vargje (strings), numra (number), boolean (true/false), null, vargje (arrays) dhe objekte. Kjo mospërputhje themelore kërkon një vendim nga krijuesi i mjetit: a duhet të përpiqet të hamendësojë llojin e secilës fushë?

Kjo faqe zgjedh të mos e bëjë këtë. Të gjitha vlerat nga CSV mbeten vargje teksti në JSON-in dalës. Kjo ka pasoja praktike:

  • Numrat: Nëse një kolonë përmban çmime si "12.50" ose "1.000,50", ato dalin si vargje "12.50" dhe "1.000,50". Çdo aplikacion që pret numra do të duhet t'i konvertojë ato manualisht pasi të ngarkojë JSON-in.
  • Datat: "2023-12-31" mbetet varg. Nuk ka asnjë konvertim në objekte Date.
  • Boolean: "po" ose "true" nuk bëhen true boolean; mbeten vargje.
  • Null: Fushat bosh në CSV dalin si vargje të zbrazëta "", jo si null. Nëse dëshironi null për qelizat bosh, kjo nuk ndodh automatikisht.

Rëndësia e zerove kryesore është një shembull i shkëlqyer. Kodet postare shpesh kanë zero kryesore, si "0110" për Tiranën (në disa sisteme). Po të ishte interpretuar si numër, zeroja kryesore do të hiqej dhe do të shndërrohej në 110. Duke i mbajtur të gjitha si vargje, zeroja ruhet. Kjo është veçanërisht e rëndësishme për kodet e produkteve, numrat e llogarive bankare, ose çdo identifikues numerik ku zeroja kryesore ka kuptim. Pas shkarkimit, nëse ngarkoni JSON-in në një mjedis që bën auto-typing (p.sh., JavaScript me JSON.parse), zeroja do të ruhet prapë sepse vargu mbetet varg. Por nëse aplikacioni juaj i mëpasshëm i konverton automatikisht vargjet numerike në numra, atëherë zeroja mund të humbasë. Pra, kjo faqe ju jep kontrollin: ju vendosni më vonë nëse do t'i konvertoni apo jo.

Linjat e reja brenda fushave të thonjëzuara ruhen si \n në vargjet JSON. Për shembull, nëse një qelizë CSV përmban "Rr. e Barrikadave\nTiranë", ajo do të dalë si "Rr. e Barrikadave\nTiranë".

Problemet me formatet CSV: kufizuesit, thonjëzat dhe rreshtat e prerë

CSV-ja nuk është një standard i vetëm. Ka variante të shumta, më i zakonshmi është RFC 4180, por shumë sisteme e zbatojnë atë lirshëm. Këtu janë burimet më të shpeshta të gabimeve që prekin këtë konvertim:

  • Kufizuesi i gabuar: Nëse përdorni presje, por skedari në fakt përdor pikëpresje (si në rastin e lokaleve evropiane), atëherë e gjithë rreshti do të analizohet si një fushë e vetme ose do të ndahet në mënyrë të gabuar. Faqja ju kërkon ta zgjidhni këtë; nuk ka zbulim automatik.
  • Thonjëzat e paikura: Nëse një fushë përmban thonjëza (p.sh., një emër si O'Brien), dhe CSV-ja nuk i ikën ato me dy thonjëza (O''Brien sipas RFC 4180), atëherë analizuesi do të dështojë. Po ashtu, nëse thonjëzat hapëse nuk mbyllen, e gjithë pjesa tjetër e skedarit trajtohet si pjesë e atij vargu.
  • Rreshtat e prera brenda fushave: Një qelizë CSV mund të përmbajë rreshta të rinj (newline) nëse është e thonjëzuar. Kjo lejon, për shembull, një adresë shumë-rreshtëshe. Megjithatë, nëse thonjëzat mungojnë, rreshti i ri interpretohet si fund i rreshtit dhe skedari ka numër të ndryshëm kolonash në rreshta të ndryshëm.
  • Numër i paqëndrueshëm kolonash: Nëse një rresht ka më pak ose më shumë fusha se të tjerët, konvertimi dështon. Faqja shfaq mesazhin: "This CSV could not be parsed."

Mesazhet e gabimit të tjera:

  • Pa rreshta të dhënash: "This file has no table rows."
  • Rreshta ose kolona më shumë se kufiri: "This table has more than ‹max› rows." ose "This table has more than ‹max› columns."
  • Madhësia e skedarit shumë e madhe: "This file is too large. Use a file under ‹max›."
  • Lloji i skedarit i gabuar: "Choose a CSV, JSON or XLSX file."
  • Kohëzgjatje e tepërt: "This conversion is taking too long. Try a smaller file."
  • Nëse nuk zgjidhet asnjë skedar: "Choose one file first."

Kufizimet dhe gabimet e mundshme

Faqja ka kufizime të qarta për të siguruar funksionim të qëndrueshëm në shfletues:

  • Rreshta maksimalë: Nuk jepet numri i saktë në fletën e fakteve, por mesazhi përmban ‹max›. (Praktikisht, shpesh është rreth 1 000 000, por nuk duhet të shpikim një numër.)
  • Kolona maksimale: Gjithashtu me një ‹max›. Shumë kolona mund të ngadalësojnë përpunimin.
  • Madhësia e skedarit: Kufiri tregohet në mesazh, por nuk specifikohet në fletë. Zakonisht 10-50 MB në mjete të ngjashme; nuk duhet të supozojmë.
  • Vetëm në shfletues: Asnjë skedar nuk ngarkohet në server. Kjo është e rëndësishme për privatësi. Konvertimi bëhet tërësisht në JavaScript në anën e klientit.

Shembull i një dështimi tipik: Një skedar CSV i eksportuar nga Excel me pikëpresje dhe me një fushë që përmban një thonjëz të vetme (p.sh., emri i një kompanie si O'Conner). Pa ikje, analizuesi sheh thonjëzën dhe mendon se po fillon një fushë të re të thonjëzuar, duke prishur rreshtin.

Për kë është kjo faqe? Rastet e përdorimit

  • Zhvilluesi që merr një eksport CSV nga një bazë të dhënash ose spreadsheet dhe duhet ta fusë të dhënën në një aplikacion JavaScript ose API që pret JSON. Ai vlerëson kontrollin mbi tipet dhe faktin që zero kryesore nuk humbasin.
  • Analisti i të dhënave që konverton një skedar adresash CSV me kode postare me zero kryesore dhe dëshiron t'i ruajë ato në JSON pa u konvertuar në numra.
  • Një ekip që ndan të dhëna tabelore midis një kolegu joteknik (që përdor Excel/CSV) dhe një teknologjie që flet JSON. Faqja lejon konvertim pa ngarkuar të dhëna të ndjeshme në një server.
  • Studenti ose hulumtuesi që transformon një CSV të thjeshtë për një detyrë programimi ose për të ushqyer një mjet në internet që lexon JSON.
  • Kushdo që ka një tabelë produktesh, kontaktesh ose regjistrimesh dhe dëshiron një format të strukturuar për përpunim të mëtejshëm.

Pyetje të shpeshta (FAQ)

1. Pse numrat në CSV nuk konvertohen automatikisht në numra në JSON? Sepse CSV nuk përmban informacion për tipat e të dhënave. Një vlerë si "0110" mund të jetë një kod postar (që duhet të mbetet varg) ose një numër (që do të humbiste zero kryesore). Për të shmangur humbjen e të dhënave, të gjitha vlerat ruhen si vargje. Nëse dëshironi numra, duhet t'i konvertoni pas shkarkimit.

2. Çfarë ndodh nëse skedari im CSV ka thonjëza të paikura? Analizuesi i faqes mund të dështojë dhe do të shfaqet mesazhi "This CSV could not be parsed." Rekomandohet të rregulloni skedarin burimor duke u siguruar që thonjëzat brenda fushave të thonjëzuara të jenë të ikura me dy thonjëza (sipas RFC 4180).

3. A mund të konvertoj një skedar JSON në CSV në të njëjtën faqe? Jo, kjo faqe është specifike për konvertimin CSV → JSON. Faqja pranon gjithashtu JSON dhe XLSX si hyrje, por i interpreton ato si tabela për të prodhuar JSON. Për JSON → CSV, ekziston një faqe tjetër në këtë sit.

4. Sa i madh mund të jetë skedari CSV që mund të përpunoj? Kufiri i madhësisë së skedarit tregohet në mesazhin e gabimit kur tejkalohet. Në përgjithësi, përpunimi në shfletues ka kufizime të kujtesës; skedarët shumë të mëdhenj (mbi disa dhjetëra MB) mund të shkaktojnë ngadalësim ose dështim.

5. A ruhen hapësirat në fillim ose në fund të fushave? Po, hapësirat në fillim dhe në fund të fushave ruhen si pjesë e vargut. Nëse CSV-ja juaj ka hapësira të padëshiruara, duhet t'i pastroni ato përpara konvertimit ose më pas.

6. Nëse kam një CSV me kokë (header), a merret ajo siç duhet? Po, rreshti i parë i CSV-së përdoret si emrat e çelësave për objektet JSON. Nëse skedari nuk ka kokë, të gjitha rreshtat do të trajtohen si të dhëna, por çelësat do të jenë emra të gjeneruar automatikisht (p.sh., "Column1", "Column2"). Për të pasur kontroll, sigurohuni që skedari të ketë një rresht kokë.