Konverter JSON ke CSV
Tempel array JSON objek di kiri, dapatkan CSV dengan kutipan yang benar di kanan. Header dari kunci objek. Tanpa unggah.
- Tempel array JSON objek ke area teks kiri.
- Klik "Konversi ke CSV". Baris header dibangun dari union kunci objek.
- Salin hasilnya, atau unduh sebagai data.csv.
- Untuk nilai bersarang, field di-stringify menjadi JSON — ratakan dulu jika ingin kolom datar.
Apa fungsinya?
Mengonversi array JSON objek menjadi CSV RFC 4180. Baris header adalah union semua kunci di seluruh objek. Nilai diberi tanda kutip CSV ketika berisi koma, tanda kutip, atau baris baru. Angka dan boolean dikeluarkan tanpa kutip; null dan undefined menjadi field kosong. Nilai bersarang (objek, array) di-stringify menjadi JSON dalam satu field bertanda kutip — CSV tidak dapat merepresentasikan hierarki secara native.
Contoh
Input JSON:
[
{"name":"Ada","age":36,"role":"engineer"},
{"name":"Grace","age":40,"role":"scientist"}
] Output CSV:
name,age,role
Ada,36,engineer
Grace,40,scientist Jebakan umum JSON ke CSV
CSV adalah format datar. Sebagian besar output "aneh" berasal dari bentuk JSON yang tidak punya representasi datar.
- Top-level bukan array. Objek JSON `{"a":1,"b":2}` tidak bisa langsung jadi CSV — bungkus dalam array: `[{"a":1,"b":2}]`. CSV akan punya satu baris header dan satu baris data.
- Kunci heterogen antar baris. Jika objek pertama punya `{a,b}` dan kedua `{a,c}`, header adalah `a,b,c` (union). Baris yang tidak punya suatu kunci mengeluarkan field kosong. Pra-proses jika ingin skema yang lebih ketat.
- Nilai bersarang diam-diam diratakan. Field seperti `{"address":{"city":"NY"}}` menjadi satu kolom CSV bernilai string JSON `{"city":"NY"}`. Untuk kolom `address.city` terpisah, ratakan di JavaScript dulu: `{address_city: row.address.city}`.
- Baris baru tertanam dalam nilai. String multi-baris di nilai JSON menjadi field CSV bertanda kutip dengan karakter `\n` literal di dalam kutipan. Sebagian besar aplikasi spreadsheet menanganinya dengan benar; beberapa tool lama tidak.
- Karakter khusus di header. Kunci JSON dengan koma, kutip, atau baris baru bekerja tetapi menghasilkan baris header yang dipase buruk oleh sebagian konsumen CSV. Ganti nama kunci ke alfanumerik + underscore sebelum konversi jika butuh kompatibilitas maksimal.
- Koma trailing di JSON. `[{"a":1},]` adalah JSON tidak valid (koma trailing setelah elemen terakhir). Parser menolaknya sebelum tahap CSV. Sebagian besar formatter JSON menghapusnya — jalankan melalui `/json-prettifier` jika perlu.
Pertanyaan yang sering diajukan
Bagaimana mendapatkan output dipisah tab (TSV)?
Halaman ini mengeluarkan CSV dipisah koma. Untuk TSV, ganti `,` dengan `\t` di hasil, atau jalankan PapaParse dengan `delimiter: "\t"` di command line — pustaka yang sama.
Apakah urutan kunci dipertahankan di baris header?
Ya — header menggunakan urutan kemunculan pertama kunci di seluruh objek. Untuk urutan alfabet, sortir kunci di JSON sebelum tempel.
Bagaimana tanggal ditangani?
JSON tidak punya tipe Date native — tanggal biasanya sudah diserialisasi sebagai string ISO 8601. Ini lewat tanpa perubahan. Jika JSON Anda dari JSON.stringify objek Date, sudah dikonversi ke string ISO pada saat itu.
Bisa round-trip JSON → CSV → JSON?
Untuk data array objek datar, ya. String tetap string, angka tetap angka (dengan dynamic typing PapaParse saat impor). Nilai bersarang kehilangan struktur di sisi CSV dan kembali sebagai field JSON-string, bukan objek bersarang lagi.
Apakah JSON saya diunggah?
Tidak. Semua berjalan di browser Anda — JSON Anda di-parse dan dikonversi oleh JavaScript di halaman ini dan tidak pernah dikirim ke server. Verifikasi di alat developer browser.
Berapa besar file JSON yang bisa dikonversi?
Hingga sekitar 50 MB sebelum textarea browser terasa lambat. Konversi sendiri linear terhadap ukuran input; bottleneck adalah rendering. Untuk file lebih besar, jalankan PapaParse di command line.