Konverter CSV ke JSON
Tempel CSV (atau TSV) di kiri, dapatkan array JSON objek di kanan. Header dideteksi otomatis. Tanpa unggah.
- Tempel CSV Anda di area teks kiri.
- Klik "Konversi ke JSON". Baris pertama dianggap sebagai header.
- Salin array JSON, atau unduh sebagai data.json.
- TSV (dipisah tab) dan delimiter lain dideteksi otomatis oleh PapaParse.
Apa fungsinya?
Mem-parse CSV (mirip RFC 4180) ke array JSON di mana setiap kunci objek cocok dengan kolom header. Field berkutip, koma di dalam, double-quote yang di-escape, dan akhir baris CRLF / LF semua tertangani. Angka, boolean, dan nilai null-likes ("true", "false", kosong) di-tipe otomatis. Delimiter dideteksi otomatis — Anda dapat menempelkan TSV, data dipisah titik koma atau pipa dan tetap berfungsi.
Contoh
Input CSV:
name,age,role
Ada,36,engineer
Grace,40,scientist Output JSON:
[
{"name": "Ada", "age": 36, "role": "engineer"},
{"name": "Grace", "age": 40, "role": "scientist"}
] Hambatan CSV umum dan cara menanganinya
CSV terlihat sederhana tetapi memiliki lebih banyak kasus tepi daripada yang diperkirakan. Pola-pola berikut menghasilkan output yang tidak terduga.
- Koma di dalam tanpa kutip. Field seperti `Smith, John` (tanpa kutip) terbelah menjadi dua kolom. Bungkus dengan kutip ganda: `"Smith, John"`.
- Kutip ganda di dalam field. Di dalam field berkutip, `"` literal di-escape dengan menggandakannya: `"He said ""hi"""` didekode menjadi `He said "hi"`. Escape backslash (`\"`) bukan standar dan tidak didukung.
- Jumlah kolom tidak konsisten. Baris dengan kolom lebih sedikit dari header mendapat null untuk kunci yang hilang; baris dengan kolom lebih banyak dilaporkan sebagai peringatan parsing. Konversi tetap selesai, tapi periksa output.
- ID numerik kehilangan nol di depan. `007` diparse sebagai angka 7, bukan string "007". Jika nol di depan penting (kode pos, nomor telepon), pra-proses dengan mengutip field — nilai berkutip dapat tetap diparse sebagai string jika Anda matikan tipe dinamis di kode hilir.
- BOM di awal file. CSV yang disimpan Excel sering menyertakan UTF-8 byte order mark (`\uFEFF`) di awal. Parser menghapusnya, tetapi jika Anda menempel byte mentah dari editor hex, BOM mungkin terlihat sebagai karakter aneh di header pertama.
- Akhir baris campur. CRLF (Windows), LF (Unix), dan CR (Mac lama) semua dikenali. Jika output Anda terlihat seperti satu baris raksasa, file mungkin tidak memiliki line break sama sekali — umum saat CSV dibuat dengan menyatukan tanpa `\n`.
Pertanyaan yang sering diajukan
Apakah ini mendukung tab-separated values (TSV)?
Ya. PapaParse otomatis mendeteksi delimiter dari kilobyte pertama input. Tab, titik koma, pipa, dan koma bekerja tanpa konfigurasi. Jika deteksi salah memilih delimiter (jarang pada data nyata), pisahkan field lebih jelas atau pra-proses.
Bagaimana jika CSV saya tidak memiliki baris header?
Konfigurasi saat ini menganggap baris pertama sebagai header. Jika CSV tanpa header, tambahkan baris header sintetis seperti `a,b,c` sebelum menempel — atau konversi dengan `header: false` di PapaParse pada baris perintah jika butuh output array dari array.
Bagaimana tanggal ditangani?
Tetap sebagai string. Parser hanya tipe otomatis angka dan boolean — parsing tanggal sengaja tidak dilakukan karena ambiguitas format (`01/02/03` adalah 2 Januari di AS, 1 Februari di Inggris) terlalu berisiko ditebak. Parsing di hilir di mana Anda tahu konvensi sumber.
Bisakah saya mengonversi file CSV yang sangat besar?
Hingga sekitar 50 MB sebelum browser mulai melambat. Yang menjadi bottleneck adalah area teks, bukan parser — untuk file lebih besar jalankan PapaParse di baris perintah. Pustakanya sama.
Apakah CSV saya diunggah?
Tidak. Semuanya berjalan di peramban Anda — data Anda diparse oleh JavaScript di halaman ini dan tidak pernah dikirim ke server mana pun. Verifikasi di developer tools peramban: nol permintaan jaringan saat klik Konversi.
Bagaimana saya mendapatkan JSON dengan bentuk berbeda (bersarang, dikelompokkan)?
Alat ini menghasilkan array datar dari objek datar — itulah yang direpresentasikan CSV. Untuk struktur bersarang, pasca-proses output dengan skrip (kelompokkan berdasarkan kolom, transformasikan nama field dengan prefiks, dll.). Mencoba mengkodekan hierarki dalam CSV biasanya menimbulkan lebih banyak masalah daripada solusi.