Lewati ke konten

Konverter JSON ↔ CSV

Konverter JSON ↔ CSV

Konversi dua arah antara CSV/TSV dan JSON dengan deteksi pemisah otomatis, pemetaan baris header, pemangkasan field, dan melewati baris kosong. Berguna untuk impor/ekspor data, pemrosesan spreadsheet, dan persiapan payload API.

Konverter JSON ↔ CSV

🚀 Mulai cepat

  • Tempel atau masukkan data CSV/TSV di editor CSV di sebelah kanan, dan JSON di sebelah kiri akan otomatis tersinkronisasi
  • Anda juga dapat memasukkan JSON di editor JSON di sebelah kiri, dan CSV di sebelah kanan juga akan disinkronkan secara otomatis.
  • Pembatas diatur ke "Otomatis" secara default. Alat ini memeriksa baris pertama dan mendeteksi koma, tab, titik koma, atau bilah vertikal (|).
  • Saat "Gunakan baris header" diaktifkan, baris pertama CSV akan dipakai sebagai nama kunci objek JSON; saat dinonaktifkan, hasilnya diubah menjadi array dua dimensi.
  • Gunakan "Pangkas bidang" dan "Lewati baris kosong" untuk membersihkan data CSV yang berantakan.
  • Setiap editor dapat diunduh secara terpisah: sisi JSON mengunduh file .json, dan sisi CSV mengunduh file .csv atau .tsv berdasarkan pembatas saat ini.

📌 Skenario umum

  • Excel ke JSON: salin sel yang dipisahkan tab dari Excel ke panel CSV dan konversikan ke array objek JSON secara instan.
  • Respons API ke spreadsheet: konversikan respons JSON ke CSV untuk analisis di Excel atau Google Spreadsheet.
  • Persiapan impor basis data: mengonversi kumpulan data CSV ke JSON untuk impor API batch.
  • Analisis log: konversi log CSV ke JSON untuk kueri terstruktur dengan alat seperti jq.
  • Migrasi konfigurasi: beralih antara tabel pemetaan CSV dan file konfigurasi JSON.
  • Pembersihan data: bersihkan data yang diekspor dengan cepat dengan pemangkasan bidang dan lompatan baris kosong.

🧭 Saran penggunaan

  • Data yang ditempel dari Excel biasanya dibatasi tab dan terdeteksi dengan benar. Jika deteksi salah, pilih pembatas secara manual.
  • Saat "Gunakan baris header" aktif, baris pertama diperlakukan sebagai nama kolom, bukan sebagai data. Jika CSV Anda tidak memiliki header, nonaktifkan opsi ini agar baris data pertama tidak hilang.
  • Jika ada nama header duplikat, sufiks ditambahkan secara otomatis (misalnya, nama, nama_2) untuk menjaga agar kunci JSON tetap unik.
  • JSON → CSV berfungsi paling baik dengan array objek datar. Objek/array bersarang diserialkan sebagai string JSON dalam sel.
  • Bidang yang berisi pembatas, baris baru, atau tanda kutip ganda secara otomatis dikutip dan di-escape sesuai aturan CSV.

⚠️ Batasan & kompatibilitas

  • CSV adalah format tabel datar dan tidak dapat mewakili struktur bertingkat secara asli. Objek/array JSON yang disarangkan diserialkan sebagai string dan tidak dapat dipulihkan sepenuhnya pada konversi terbalik.
  • CSV menyimpan nilai sebagai teks. Setelah perjalanan bolak-balik JSON → CSV → JSON, angka dan boolean dapat muncul kembali sebagai string.
  • UTF-8 BOM (\uFEFF) dihapus secara otomatis. Pengkodean lainnya (misalnya, GBK atau Shift-JIS) tidak didukung; konversikan ke UTF-8 terlebih dahulu.
  • Seperti JSON di JavaScript, alat ini mengikuti batasan IEEE 754. Bilangan bulat di luar rentang aman 53-bit mungkin kehilangan presisi.

🔒 Privasi & keamanan

  • Semua pemrosesan terjadi secara lokal di browser Anda. Data Anda tidak pernah meninggalkan perangkat Anda.

❓ Pertanyaan umum

Apa itu CSV dan apa kaitannya dengan TSV dan Excel?

CSV (Nilai yang Dipisahkan Koma) adalah format tabel teks biasa yang setiap barisnya merupakan rekaman dan bidang dipisahkan dengan koma. TSV adalah varian yang dibatasi tab. Excel bisa membuka dan mengekspor kedua format tersebut, namun .xlsx sendiri adalah format buku kerja biner. Alat ini berfungsi dengan CSV/TSV teks biasa, bukan file .xlsx. Secara historis, CSV tidak memiliki standar tunggal yang ketat. Pada tahun 2005, RFC 4180 menetapkan aturan umum: bidang dipisahkan koma, bidang dengan karakter khusus diapit dengan tanda kutip ganda, dan tanda kutip di dalam bidang yang dikutip di-escape sebagai dua tanda kutip ganda. Aplikasi yang berbeda masih menerapkan CSV dengan sedikit perbedaan, itulah sebabnya masalah impor/ekspor sering terjadi.

Bagaimana cara kerja deteksi pembatas "Otomatis"? Bisakah itu salah?

Alat memeriksa baris pertama CSV, menghitung jumlah koma, tab, titik koma, dan garis vertikal (|) yang muncul di luar tanda kutip, lalu memilih yang paling sering muncul sebagai pemisah. Untuk sebagian besar data CSV/TSV yang valid, deteksi otomatis ini akurat. Kesalahan bisa terjadi jika hanya ada satu kolom (tidak ada pemisah terlihat) atau isi field sendiri mengandung banyak karakter pemisah. Jika demikian, pilih pemisah secara manual.

Apa yang berubah ketika "Gunakan baris header" aktif atau nonaktif?

Jika diaktifkan, baris pertama CSV diperlakukan sebagai nama kolom, lalu setiap baris data diubah menjadi objek JSON dengan nama kolom tersebut sebagai kunci (misalnya {"name": "Alice", "age": "30"}). Jika dinonaktifkan, semua baris termasuk baris pertama diperlakukan sebagai data dan diubah menjadi array dua dimensi (misalnya [["name", "age"], ["Alice", "30"]]). Pada konversi JSON → CSV, mengaktifkan header akan menulis kunci objek pada baris pertama CSV.

JSON saya berisi objek bersarang. Bisakah saya mengonversi kembali tanpa kehilangan setelah CSV?

Tidak sepenuhnya. Selama JSON → CSV, objek/array bersarang diserialkan dengan JSON.stringify ke dalam teks sel. Selama CSV → JSON, nilai-nilai tersebut tetap berupa string dan tidak diurai secara otomatis kembali ke objek. Jika Anda memerlukan fidelitas struktural, ratakan JSON sebelum konversi.

Bisakah saya mengonversi data yang disalin dari Excel secara langsung?

Ya. Saat Anda menyalin rentang sel dari Excel dan menempelkannya ke editor CSV, datanya biasanya dibatasi tab. Deteksi otomatis mengidentifikasinya sebagai TSV dan mengonversinya dengan benar. Jika Anda ingin unduhan .csv yang dibatasi koma, alihkan pembatas ke koma sebelum mengunduh.

Bagaimana cara menangani tanda kutip dan jeda baris di bidang CSV?

Mengikuti RFC 4180: jika isi field mengandung pemisah, baris baru, atau tanda kutip ganda, seluruh field akan dibungkus dengan tanda kutip ganda; tanda kutip ganda di dalam field di-escape menjadi dua tanda kutip ganda berturut-turut (""). Aturan ini berlaku saat parsing input maupun saat menghasilkan output. Jika kutip tidak tertutup dengan benar, akan muncul error "Tanda kutip CSV tidak ditutup".