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 memanggilNumber()atauparseInt(). - Nol di depan (kode pos
00123, kode produk0456) 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.
truedi CSV menjadi"true"(string), bukantrue(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
mapdanNumber()atauparseInt()pada setiap properti numerik. - Untuk boolean: bandingkan string dengan
"true"atau"false". - Untuk tanggal: gunakan
new Date(yourString)atau pustaka sepertidate-fnsjika 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.