Bedane CSV lan JSON: Kenapa Kabeh Nilai Tetep String?
Nalika ngowahi file CSV dadi JSON, salah siji bab sing paling penting yaiku CSV nyimpen kabeh data minangka teks plain, dene JSON ndhukung macem-macem jinis data kaya nomer, boolean, null, lan string kanthi eksplisit. Alat iki ora nyoba nyimpulake jinis. Saben kolom ing CSV dianggep minangka string, sanajan isine angka kaya rega 9.99, jumlah 42, utawa kode pos 00123. Dadi kolom rega kanthi 9.99 dadi "9.99" ing output JSON, dudu 9.99. Kolom boolean kanthi TRUE dadi "TRUE", dudu true.
Kenapa iki penting? Amarga inferensi jinis otomatis bakal ngenalake ambiguitas. Apa 00123 minangka nomer sing kudu ilang nol ing ngarep, utawa kode pos sing kudu tetep ana? Alat iki njaga teks asli persis kaya sing katon ing CSV. Yen sampeyan butuh nilai kasebut dadi nomer utawa boolean ing JSON, sampeyan kudu ngowahi kanthi manual sawise download, contone maca file JSON banjur ngonversi kolom tartamtu nganggo fungsi reviver ing parser JSON utawa nganggo skrip cendhak.
Nol ing ngarep minangka masalah umum nalika pangguna ngemot JSON menyang lingkungan sing otomatis ngurai nomer. Contone, JSON.parse ing JavaScript bakal ngowahi "00123" (string) dadi 123 (nomer) yen aplikasi maca nilai kasebut tanpa kanthi eksplisit nganggep minangka string. Alat kasebut dhewe ora nyebabake kerugian kasebut—nol ditulis kanthi bener menyang file JSON minangka "00123". Kerugian mung kedadeyan nalika konsumen JSON meksa string dadi nomer. Yen nol ing ngarep penting (kode produk, kode pos, nomer akun), simpen nilai kasebut minangka string ing kode hilir sampeyan.
Baris anyar ing njero kolom CSV sing dikutip uga dilestarekake. Alat kasebut nulis minangka urutan escape ing nilai string JSON, dadi kolom alamat multiline ing CSV dadi string tunggal kanthi baris anyar sing dilebokake. Iki ngetutake spesifikasi CSV (RFC 4180) lan ngasilake JSON sing valid.
Delimiter lan Masalah Kuoting: Kunci Parsing CSV
CSV minangka format teks sing prasaja, nanging aturan kuoting lan delimiter bisa nyebabake masalah. Ing alat iki, sampeyan kudu milih delimiter sing bener: Koma, Titik koma, utawa Tab. Kesalahan umum yaiku milih delimiter sing salah, contone file dipisah nganggo titik koma nanging sampeyan milih Koma, utawa kosok balene. Iki bisa nyebabake kabeh data dadi siji kolom utawa parsing gagal.
Masalah liyane yaiku kuoting. Aturan standar CSV (RFC 4180) nyatakake yen lapangan sing ngemot delimiter, kuotasi, utawa baris anyar kudu dikutip nganggo tanda petik ganda ("). Contone:
Nama,Alamat,Kota
"John Doe","Jl. Merdeka No. 5","Jakarta"
Yen lapangan Alamat ngemot koma (contone "Jl. Merdeka, No. 5"), kudu dikutip. Yen ora, alat bakal salah maca dadi rong kolom. Alat iki bakal nampilake pesen: "This CSV could not be parsed." yen ana kesalahan kuoting, kaya kuotasi sing ora seimbang utawa garis anyar ing lapangan sing ora dikutip.
Input, Output, lan Pilihan Panganggo
Input alat iki yaiku file CSV. Sampeyan milih file saka piranti utawa nyeret menyang alat. Yen file asline CSV, sampeyan kudu milih delimiter sing bener ing pilihan "CSV delimiter".
Sawise milih, alat bakal nampilake pratinjau data sing wis dikonversi (8 baris lan 8 kolom pisanan), uga informasi:
- Jumlah baris
- Jumlah kolom
- Ukuran file output
Output yaiku file JSON sing ngemot array obyek. Saben baris CSV dadi siji obyek ing array, saben kolom dadi kunci. Contone, CSV:
Nama,Umur,Kota
Andi,25,Jakarta
Budi,30,Surabaya
Owah dadi JSON:
[
{"Nama": "Andi", "Umur": "25", "Kota": "Jakarta"},
{"Nama": "Budi", "Umur": "30", "Kota": "Surabaya"}
]
Elinga yen "Umur" isih string "25", dudu nomer 25.
Aturan lan Kasus Pinggiran: Kesalahan Umum
Alat iki nduweni sawetara aturan sing kudu dingerteni kanggo ngindhari kesalahan. Ing ngisor iki tabel pesen kesalahan sing bisa katon:
| Situasi | Pesen Kesalahan |
|---|---|
| Panganggo ora milih file | "Choose one file first." |
| Jinis file salah (dudu CSV) | "Choose a CSV, JSON or XLSX file." |
| CSV ora bisa diparsing (kuoting salah, jumlah kolom ora konsisten) | "This CSV could not be parsed." |
| File ora ngemot data baris (mung header utawa kosong) | "This file has no table rows." |
| Ngluwihi wates baris maksimal (10.000 baris) | "This table has more than ‹max› rows." |
| Ngluwihi wates kolom maksimal (200 kolom) | "This table has more than ‹max› columns." |
| Ukuran file ngluwihi wates (8 MB) | "This file is too large. Use a file under ‹max›." |
| Konversi suwe banget (biasane amarga file gedhe banget) | "This conversion is taking too long. Try a smaller file." |
Kabeh kesalahan minangka terminal kanggo upaya konversi kasebut. Alat kasebut ora nyoba ndandani CSV sing salah utawa ngethok file sing ngluwihi wates.
Uga penting dingerteni:
- Line breaks ing lapangan sing dikutip bakal dilestarekake minangka
ing string JSON. Contone, yen alamat ngemot garis anyar, ing JSON bakal katon minangka "Jl. Merdeka No. 5". - Nol ing ngarep dilestarekake amarga kabeh nilai minangka string. Nanging yen sampeyan banjur ngimpor JSON menyang lingkungan sing otomatis jinis (kaya JavaScript), nol ing ngarep bisa ilang yen sampeyan nganggep minangka nomer.
- Nesting ora bisa digawe saka CSV. Kabeh JSON bakal flat (array saka obyek kanthi kunci sing padha). Yen sampeyan butuh nested, sampeyan kudu ngowahi kanthi manual sawise.
Sapa Sing Perlu Alat Iki?
Alat iki migunani kanggo sapa wae sing nangani data tabular lan butuh format JSON. Sawetara skenario umum:
- Pangembang sing nampa data CSV saka database utawa spreadsheet lan kudu nglebokake menyang aplikasi JavaScript utawa API sing ngarepake JSON.
- Analis data sing nggarap file CSV lawas, contone daftar alamat kanthi kode pos nol ing ngarep, lan pengin konversi menyang JSON tanpa ilang nol kasebut.
- Tim sing nuduhake data antarane kolega non-teknis (sing nggunakake Excel/CSV) lan tumpukan teknologi (tech stack) sing nganggo JSON, tanpa ngunggah data sensitif menyang server manca.
- Siswa utawa peneliti sing butuh ngowahi file CSV siji-sijine kanggo tugas pemrograman utawa analisis.
- Sapa wae sing mbangun alat web cilik (kaya toko online, daftar kontak, utawa log) sing mbutuhake data ing format JSON.
Cara Kerja Parsing CSV ing Browser: Privasi lan Watesan
Salah siji fitur utama alat iki yaiku proses konversi ditindakake kabeh ing browser (client-side). Ora ana file sing dikirim menyang server. Iki penting kanggo privasi, utamane yen data sampeyan sensitif kaya informasi pribadi, data finansial, utawa data bisnis rahasia.
Mekanisme kerjane: panganggo milih file, browser ngurai file lan nulis output sing dikonversi sacara lokal ing piranti. Kabeh tetep ing piranti panganggo.
Nanging ana watesan teknis:
- Ukuran file – browser duwe watesan memori. File gedhe banget (luwih saka 8 MB) bisa nyebabake browser macet utawa konversi suwe banget. Alat iki menehi pesen kesalahan yen file kasebut gedhe banget.
- Jumlah baris/kolom – alat iki duwe wates internal 10.000 baris lan 200 kolom.
- Kacepetan – yen data rumit (akeh kolom, garis anyar ing sel), konversi bisa suwe. Yen luwih saka kira-kira 12 detik, alat menehi pesen
"This conversion is taking too long. Try a smaller file.".
FAQ (Pitakonan Umum)
P1: Apa sing kelakon yen file CSV duwe lapangan sing ngemot koma?
Yen lapangan ngemot koma, kudu dikutip nganggo tanda petik ganda ("). Contone: "Jl. Merdeka, No. 5". Yen ora dikutip, alat bakal salah maca lan bisa nyebabake kesalahan "This CSV could not be parsed.".
P2: Napa nol ing ngarep (kaya 00123) tetep ana ing JSON?
Amarga kabeh nilai CSV dianggep minangka string. Dadi "00123" tetep dadi "00123" ing JSON, dudu angka 123. Iki apik kanggo integritas data, nanging yen sampeyan butuh dadi nomer, kudu ngonversi manual sawise download.
P3: Apa bisa nesting ing JSON saka CSV? Ora. CSV minangka tabel flat, mula JSON output yaiku array saka obyek flat, saben obyek duwe kunci sing padha karo header. Ora ana hierarki.
P4: Kepiye yen file duwe garis anyar (enter) ing sel?
Sel sing ngemot garis anyar kudu dikutip ing CSV. Yen dikutip, garis anyar bakal dilestarekake minangka ing string JSON. Yen ora, alat bakal nganggep garis anyar minangka pungkasaning baris, nyebabake jumlah kolom ora konsisten lan kesalahan parsing.
P5: Apa alat iki aman kanggo data pribadi? Ya, amarga kabeh proses ditindakake ing browser sampeyan. Ora ana data sing dikirim menyang server.
P6: Napa kabeh nilai dadi string sanajan nomer? Amarga CSV ora duwe informasi jinis. Alat iki nganggep kabeh minangka teks. Yen sampeyan butuh tipe data sing bener, sampeyan kudu ngowahi kanthi manual sawise konversi.