Konverter CSV ke JSON

Konversi CSV ke JSON secara online — gratis, instan, dan privat. File Anda diproses langsung di browser Anda dan tidak pernah diunggah ke server.

Pemisah CSV
Hasil

File hasil konversi dan pratinjau akan muncul di sini.

Siap. Pilih file tabel untuk dikonversi.

Cara kerja konversi

  • Baris pertama dibaca sebagai header — sel-selnya akan menjadi nama bidang JSON, dan setiap baris berikutnya akan menjadi satu objek.
  • Pilih pemisah (delimiter) yang sesuai dengan data Anda — koma, titik koma, atau tab.

File tabel Anda dikonversi langsung di browser Anda. Tidak ada data yang diunggah ke BroBroGo.

Tanya Jawab

Bagaimana cara mengonversi CSV ke JSON?

Seret file CSV Anda dan klik konversi — file JSON siap diunduh dalam hitungan detik, lengkap dengan pratinjau hasilnya. Seluruh proses berjalan langsung di perangkat Anda.

Berapa batas ukuran file yang dapat dikonversi?

Hingga 8 MB, 10.000 baris, dan 200 kolom per file. Untuk kumpulan data yang lebih besar, sebaiknya bagi menjadi beberapa file yang lebih kecil terlebih dahulu.

Apa yang Terjadi Saat CSV Diubah Menjadi JSON?

Halaman ini menerima file CSV — data tabel yang kolomnya dipisahkan oleh koma, titik koma, atau tab — dan mengeluarkannya sebagai JSON, biasanya berupa larik objek. Setiap baris CSV menjadi satu objek, setiap kolom menjadi kunci. Prosesnya berjalan sepenuhnya di peramban: Anda menyeret file atau memilihnya dari perangkat, memastikan format keluaran disetel ke JSON, memilih pembatas yang benar jika CSV Anda tidak menggunakan koma, melihat pratinjau, lalu mengunduh hasilnya.

Namun karena CSV menyimpan semuanya sebagai teks datar dan JSON mendukung angka, boolean, null, serta struktur bersarang, konversi ini tidak sesederhana menyalin isi sel. Setiap nilai CSV tiba sebagai string — harga, kuantitas, tanggal, kode pos dengan nol di depan — tidak otomatis menjadi angka atau tanggal dalam JSON keluaran. Semua tetap string kecuali Anda sengaja mengubahnya setelah unduhan.

Perbedaan Mendasar: CSV vs JSON dalam Konteks Konversi

Tidak Ada Tipe Data Sumber, Semua String

CSV tidak memiliki skema tipe. Angka 1000 disimpan sebagai teks "1000", tanggal 2024-01-15 juga sebagai teks. JSON, di sisi lain, membedakan 1000 (angka) dari "1000" (string). Alat ini tidak melakukan tebakan — ia memperlakukan setiap nilai sebagai string. Akibatnya:

  • Angka (harga, kuantitas, persentase) tetap string. Jika Anda memuat JSON ke JavaScript, "1000" akan menjadi string, bukan number. Anda harus memanggil Number() atau parseInt().
  • Nol di depan (kode pos 00123, kode produk 0456) dipertahankan karena tidak pernah diubah menjadi angka. Ini keunggulan jika Anda membutuhkan integritas data, tetapi bisa mengejutkan jika Anda mengharapkan konversi otomatis.
  • Tanggal tetap string. Tidak ada format tanggal yang dikenali; "2024-01-15" tetap persis seperti itu. Tidak ada parsing, tidak ada konversi ke epoch atau objek Date.
  • Boolean tidak dikenali. true di CSV menjadi "true" (string), bukan true (boolean). Anda harus mengonversinya secara manual jika perlu.

Tidak Ada Struktur Bersarang

CSV adalah tabel datar: setiap baris memiliki jumlah kolom yang sama, setiap nilai sederhana. Oleh karena itu, JSON yang dihasilkan selalu berupa larik objek datar — semua objek memiliki kunci yang sama, tidak ada objek di dalam objek. Jika Anda membutuhkan hierarki (alamat sebagai objek terpisah di dalam pengguna, misalnya), alat ini tidak bisa membuatnya dari CSV. Untuk mendapatkan JSON bersarang, Anda harus memproses ulang hasilnya dengan skrip terpisah.

Penanganan Baris Baru dan Koma di Dalam Data Terkutip

CSV sejati mengutip nilai yang mengandung koma, baris baru, atau tanda kutip. Misalnya:

nama,alamat
"John Doe","Jl. Merdeka No. 10, Jakarta"

Alat ini membaca baris baru di dalam nilai terkutip sebagai \n di string JSON. Namun file CSV di dunia nyata sering tidak mengikuti aturan kutipan dengan benar. Jika kutipan tidak berpasangan, baris baru di luar kutipan atau koma yang salah tempat bisa menyebabkan parse gagal dan menampilkan pesan: "CSV ini tidak dapat diuraikan."

Memilih Delimiter yang Tepat (Koma, Titik Koma, atau Tab?)

Tidak seperti konversi dari JSON atau Excel, halaman ini meminta Anda memilih delimiter karena CSV tidak selalu menggunakan koma. Di banyak wilayah Eropa, koma digunakan sebagai pemisah desimal sehingga titik koma menjadi pemisah kolom standar. Tab juga umum untuk data yang mengandung koma.

Pilihan yang tersedia:

Delimiter Contoh Baris Cocok Untuk
Koma (,) nama,usia,kota File CSV standar dari sistem AS/database
Titik koma (;) nama;usia;kota File dari Excel regional Eropa (pemisah desimal koma)
Tab (\t) nama\tusia\tkota Data yang mengandung koma dan tidak ingin dikutip

Memilih delimiter yang salah adalah penyebab paling umum kegagalan parse. Jika file Anda menggunakan titik koma tetapi Anda memilih koma, alat akan membaca satu baris sebagai satu sel karena tidak menemukan koma. Akibatnya, jumlah kolom per baris tidak konsisten dan alat menampilkan "CSV ini tidak dapat diuraikan."

Beberapa alat CSV mendeteksi delimiter secara otomatis, tetapi alat ini tidak melakukannya — Anda harus menentukan. Jika tidak yakin, buka file di editor teks dan lihat karakter pemisah di baris header.

Mengapa Tipe Data Tidak Otomatis Berubah (dan Mengapa Itu Penting)

Sifat String yang Dipertahankan

Keputusan untuk tidak mengonversi tipe data adalah desain yang disengaja. CSV tidak menyimpan informasi jenis, sehingga setiap interpretasi otomatis berisiko salah. Anggap file CSV yang berisi kode pos seperti "00123". Jika alat mengonversinya ke angka 123, data Anda rusak — kode pos 00123 berbeda dengan 123 di banyak konteks (Belanda, misalnya, memiliki kode pos 4 digit plus 2 huruf, tetapi contoh angka depan nol juga ada di sistem pos AS dulu).

Demikian pula, jika Anda memiliki kolom aktif dengan nilai "true" dan "false", JSON Anda akan berisi string "true", bukan boolean true. Ini lebih aman karena Anda yang memutuskan kapan dan bagaimana mengonversinya setelah unduhan.

Apa yang Harus Dilakukan Setelah Konversi

Setelah mengunduh JSON, Anda perlu memprosesnya sesuai kebutuhan:

  • Untuk angka: gunakan map dan Number() atau parseInt() pada setiap properti numerik.
  • Untuk boolean: bandingkan string dengan "true" atau "false".
  • Untuk tanggal: gunakan new Date(yourString) atau pustaka seperti date-fns jika formatnya konsisten.

Alat ini tidak menyediakan opsi konversi otomatis karena tidak bisa menebak niat Anda.

Kasus Khusus: Baris Baru di Dalam Nilai

Jika sel CSV berisi baris baru di dalam tanda kutip, alat mempertahankannya sebagai \n di string JSON. Ini penting untuk data seperti alamat multiline atau catatan panjang. Namun, jika file CSV Anda memiliki baris baru tanpa kutipan yang benar, alat akan menganggapnya sebagai baris baru sejati, menyebabkan baris ekstra dan kolom tidak sejajar. Akibatnya, alat mungkin menampilkan "Berkas ini tidak memiliki baris tabel." jika tidak ada data yang bisa diurai, atau gagal parse.

Aturan Batas dan Pesan Error yang Harus Diketahui

Batas Ukuran dan Dimensi

Alat ini memiliki batasan untuk mencegah kehabisan memori di peramban. Berikut dari lembar fakta:

  • Baris melebihi batas: "Tabel ini memiliki lebih dari ‹maks› baris."
  • Kolom melebihi batas: "Tabel ini memiliki lebih dari ‹maks› kolom."
  • Ukuran file terlalu besar: "Berkas ini terlalu besar. Gunakan berkas di bawah ‹maks›."

Nilai ‹maks› tidak disebutkan di lembar fakta, jadi saya tidak bisa menyebutkan angka spesifik. Namun, jika Anda menemui batas ini, solusinya adalah membagi CSV menjadi beberapa bagian yang lebih kecil atau mengurangi jumlah kolom.

Kondisi Gagal Lainnya

  • Tidak ada file dipilih: "Pilih satu berkas terlebih dahulu."
  • Jenis file salah: "Pilih berkas CSV, JSON, atau XLSX." — Meskipun halaman ini fokus pada CSV, alat juga menerima JSON dan XLSX untuk kasus di mana pengguna salah unggah, tetapi konversi dari JSON ke JSON jelas tidak masuk akal.
  • Konversi terlalu lama: "Konversi ini terlalu lama. Coba berkas yang lebih kecil." — Biasanya terjadi pada file besar dengan banyak baris atau nilai kompleks.
  • CSV tidak dapat diuraikan: "CSV ini tidak dapat diuraikan." — Penyebabnya meliputi kutipan tidak konsisten, jumlah kolom bervariasi antar baris, atau karakter tak terduga.
  • Tidak ada baris data: "Berkas ini tidak memiliki baris tabel." — File mungkin hanya berisi header, atau data tidak terbaca.

Privasi: Semua Diproses di Peramban

Karena konversi berjalan di sisi klien, file Anda tidak pernah diunggah ke server mana pun. Ini penting untuk data sensitif seperti daftar pelanggan, catatan medis, atau informasi keuangan. Tidak ada jejak data yang tertinggal di server alat.

FAQ

1. Mengapa kode pos saya 00123 berubah menjadi 123 di JSON? Tidak akan terjadi di alat ini. Semua nilai CSV tetap string, sehingga 00123 tetap "00123". Yang berubah adalah jika Anda memuat JSON ke lingkungan yang melakukan auto-typing (misalnya, Excel, Google Sheets, atau beberapa parser JSON). Untuk menghindari kehilangan nol di depan, pastikan Anda mengimpor JSON sebagai teks atau mempertahankan kutipan.

2. Bisaya membuat JSON bersarang (seperti { "pengguna": { "nama": "...", "alamat": {...} } }) dari CSV? Tidak, karena CSV adalah tabel datar. Alat ini hanya menghasilkan larik objek datar. Untuk struktur bersarang, Anda harus memproses JSON keluaran dengan skrip (misalnya, menggunakan reduce di JavaScript untuk mengelompokkan data berdasarkan kolom tertentu).

3. Apa yang terjadi jika file CSV saya menggunakan koma di dalam data tetapi tidak dikutip? Alat akan salah menginterpretasikan koma tersebut sebagai pemisah kolom. Akibatnya, baris akan memiliki lebih banyak kolom dari header, menyebabkan ketidakcocokan kolom dan pesan error "CSV ini tidak dapat diuraikan." Untuk menghindarinya, pastikan data yang mengandung koma dikutip dengan tanda kutip ganda.

4. Apakah saya tetap bisa mengonversi file Excel (XLSX) dengan halaman ini? Ya, alat ini mendeteksi format input secara otomatis dan dapat memproses XLSX. Namun, halaman ini dirancang khusus untuk CSV ke JSON. Jika input Anda XLSX, alat tetap menghasilkan JSON, tetapi Anda tidak perlu memilih delimiter.

5. Saya punya file JSON dan ingin mengonversinya ke CSV — apakah halaman ini untuk itu? Tidak kebalikan. Halaman ini hanya untuk input CSV (atau XLSX/JSON) ke JSON. Ada halaman terpisah untuk JSON ke CSV. Jika Anda mengunggah file JSON, alat akan mendeteksinya sebagai input yang tidak sesuai dan menampilkan "Pilih berkas CSV, JSON, atau XLSX." (walaupun JSON termasuk, tetapi hasilnya tidak masuk akal). Sebaiknya gunakan halaman yang tepat.

6. Mengapa JSON saya memiliki nilai "null" sebagai string, bukan null sejati? Karena CSV tidak memiliki representasi null. Sel kosong biasanya menjadi string kosong "" atau "null" jika ditulis secara eksplisit. Alat tidak mengonversi string "null" menjadi null JSON. Jika Anda membutuhkan null sejati, setelah unduhan, Anda bisa mengganti string "null" atau string kosong dengan null menggunakan .replace() atau logika kondisional.