Konverter CSV ke JSON
Ubah CSV atau TSV menjadi JSON yang rapi langsung di browser Anda. Baris pertama menjadi kunci, pemisah dideteksi secara otomatis, dan Anda bisa membiarkan setiap nilai tetap sebagai teks atau mengubah angka dan boolean menjadi tipe data — tidak ada yang diunggah.
Pemisah
Output
Nilai
Baris pertama menjadi kunci untuk setiap objek.
JSON Anda akan muncul di sini.
Cara menggunakan Konverter CSV ke JSON
- 1
Tempel CSV Anda
Tempel baris data CSV atau TSV dengan satu catatan per baris. Letakkan nama kolom di baris pertama agar bisa menjadi kunci.
- 2
Pilih pemisah
Biarkan pada Otomatis untuk mendeteksi koma, titik koma, atau tab secara otomatis, atau pilih pemisah yang digunakan data Anda.
- 3
Pilih bentuk output
Gunakan Objek untuk mengubah setiap baris menjadi objek dengan kunci dari header, atau Baris untuk membiarkan setiap baris tetap sebagai array sederhana. Ubah Nilai ke Tipe untuk membaca angka dan boolean sebagai tipe JSON yang sesungguhnya.
- 4
Salin JSON
Salin JSON yang sudah terformat dan tempel langsung ke kode Anda, permintaan API, atau file konfigurasi.
Mengurai CSV menjadi JSON: Header, Tipe, dan Ketidakberaturannya
CSV tampak sederhana padahal tidak
Sebuah berkas berpisah-koma tampak sepele — nilai, koma, baris baru — tetapi kesederhanaan itu adalah jebakan. CSV tidak memiliki standar resmi yang ditegakkan secara universal; RFC 4180 mendokumentasikan konvensi umum, namun para pengekspor berselisih soal pengutipan, akhiran baris, dan pembatas. Kasus-kasus sulitnya persis yang disalahtangani oleh pemecahan naif pada koma: nilai yang dirinya sendiri mengandung koma, nilai yang mengandung karakter kutip, dan nilai yang melintasi beberapa baris.
Sebuah pengurai yang sesungguhnya menangani semua itu dengan membaca aturan pengutipan alih-alih hanya memecah teks. Sebuah ruas yang dibungkus dalam kutip ganda secara sah boleh mengandung koma dan kutip yang di-escape (ditulis sebagai dua kutip ganda berturut-turut), dan alat ini menghormati persis itu: sebuah sel yang menyimpan "Portland, Oregon" tetap satu nilai alih-alih menjadi dua kolom, dan kutip ganda di dalam sebuah ruas luruh menjadi satu kutip harfiah. Satu kasus yang tidak ia rekonstruksi adalah nilai dengan pemutus baris di dalam kutip, karena ia pertama-tama memecah berkas menjadi rekam baris demi baris — jadi jagalah setiap rekam pada barisnya sendiri, atau buang baris baru di dalam sel, sebelum mengonversi.
Bentuk keluaran: sebuah larik objek
Bentuk JSON yang alami dari sebuah tabel adalah larik objek, satu objek per baris data. Baris pertama CSV diperlakukan sebagai header, dan setiap sel header menjadi sebuah kunci yang dimiliki bersama oleh setiap objek. Tempel tiga kolom bernama name, role, dan city yang diikuti dua baris data, maka Anda mendapat sebuah larik berisi dua objek, masing-masing dengan ketiga kunci itu yang dipetakan ke nilai baris tersebut. Inilah bentuk yang diharapkan sebagian besar API dan skrip impor.
Jika data Anda tidak memiliki baris header, pemetaan itu tidak punya apa pun untuk diambil sebagai kunci. Tukar ke mode keluaran baris dan setiap baris menjadi larik nilai yang sederhana, mempertahankan kisi mentah tanpa mengarang nama. Memilih mode keluaran yang tepat sejak awal menyelamatkan Anda dari objek yang berkunci pada baris data pertama yang tak disengaja.
Semuanya adalah string sampai Anda menyatakan sebaliknya
Inilah peringatan tunggal yang paling penting ketika membaca CSV. Format ini sama sekali tidak membawa informasi tipe — setiap sel adalah teks. Tanpa campur tangan, angka 42 menjadi string 42, kata true menjadi string true, dan sel kosong menjadi string kosong. Kode yang mengharapkan angka atau boolean yang sesungguhnya dari ruas-ruas itu akan diam-diam berperilaku salah.
Aktifkan nilai bertipe dan pengurai mempromosikan teks numerik biasa menjadi angka JSON, kata true dan false menjadi boolean, dan kata null menjadi null yang sesungguhnya. Inferensi tipe itu praktis tetapi pada dasarnya heuristik, jadi awasi kasus tepinya: pengenal dengan nol di depan, nomor telepon, kode pos, dan string yang menyerupai-versi secara teknis tampak numerik tetapi biasanya sebaiknya tetap teks. Ketika ketepatan itu penting untuk ruas-ruas tersebut, biarkan nilai sebagai teks dan konversikan dengan sengaja dalam kode Anda sendiri.
Deteksi pembatas dan TSV
Tidak setiap berkas nilai-berpisah menggunakan koma. Spreadsheet di banyak lokal Eropa mengekspor dengan titik koma karena koma adalah tanda desimal, dan menyalin sebuah rentang langsung dari spreadsheet biasanya menghasilkan nilai berpisah-tab. Mode Auto memeriksa baris pertama masukan Anda dan memilih mana di antara koma, titik koma, atau tab yang paling sering muncul di sana, sehingga berkas koma, berkas titik koma, dan TSV semuanya terkonversi tanpa Anda mengubah satu pengaturan pun.
Deteksi-otomatis andal untuk data yang bersih tetapi dapat terkecoh oleh berkas yang baris pertamanya kebetulan mengandung lebih banyak salah satu pemisah daripada pembatas yang sebenarnya. Jika kolom-kolomnya keluar salah, batalkan tebakan itu dan tetapkan pembatasnya secara eksplisit — itu menghilangkan kerancuan dalam satu langkah.
Pengkodean, BOM, dan makhluk halus tak terlihat lainnya
Berkas yang diekspor dari perangkat lunak spreadsheet sering kali diawali dengan byte-order mark, sebuah karakter tak terlihat tepat di awal berkas. Jika dibiarkan, ia menempel pada nama header pertama, sehingga sebuah kunci yang seharusnya id diam-diam menjadi string yang sedikit berbeda dan pencarian Anda berdasarkan id meleset. Akhiran baris yang tidak konsisten antarsistem operasi dan baris kosong di akhir adalah tersangka biasa lainnya yang menghasilkan baris hantu atau kolom yang meleset satu.
Alat ini memangkas setiap header dan sel, sehingga makhluk halus yang biasa sebagian besar terurus dengan sendirinya: ia mentoleransi akhiran baris Unix maupun Windows, dan karena byte-order mark di depan terhitung sebagai spasi kosong yang dapat dipangkas, ia dibuang dari header pertama secara otomatis alih-alih ditempelkan ke kuncinya. Itulah sebabnya menempel ekspor spreadsheet mentah di sini biasanya langsung berhasil. Jika sebuah kunci hasil konversi tetap menolak cocok dalam kode, curigai karakter nyasar yang tidak dihapus oleh pemangkasan — misalnya spasi lebar-nol — dan ekspor ulang berkas itu sebagai UTF-8 biasa.
Baris tak rata dan sel kosong
Spreadsheet yang sesungguhnya itu berantakan: beberapa baris memiliki sel kosong di akhir, beberapa sama sekali kehilangan ruas, dan sebuah baris kosong nyasar menyusup di bagian akhir. Ketika sebuah baris memiliki nilai lebih sedikit daripada jumlah header, ruas yang hilang muncul sebagai string kosong alih-alih membuat konversi macet, sehingga larik keluaran tetap berbentuk persegi dan setiap objek membawa himpunan kunci yang lengkap.
Sebelum memercayai hasilnya, telusuri ia untuk baris penanda di mana nilai-nilainya tampak bergeser satu kolom — itu adalah tanda tangan dari pembatas yang tidak di-escape di dalam ruas tanpa-kutip di hulu. Memperbaiki berkas sumber (kutip nilai yang bermasalah) jauh lebih andal daripada mencoba menambal JSON-nya setelahnya.
Di mana CSV-ke-JSON membuktikan nilainya
Penggunaan yang paling umum adalah mengubah sebuah spreadsheet yang diserahkan kepada Anda menjadi data yang dapat dikonsumsi program Anda: mengisi basis data, membangun badan permintaan API, menghasilkan berkas konfigurasi, atau mengisi fixture pengujian. Non-pengembang hidup di spreadsheet, pengembang hidup di JSON, dan konversi ini adalah jembatan di antara keduanya tanpa menulis pengurai sekali pakai setiap kali.
Karena seluruh penguraian berjalan di peramban Anda, Anda dapat mengonversi ekspor sensitif — daftar pelanggan, metrik internal, baris keuangan — tanpa mengunggah apa pun ke layanan pihak ketiga. Ingat satu aturan demi keamanan di hilir: putuskan secara sadar apakah setiap kolom sebaiknya bertipe atau dibiarkan sebagai teks, karena pemaksaan tipe yang diam-diam adalah alasan paling umum data terimpor berperilaku berbeda dari yang ditampilkan spreadsheet.
Pertanyaan yang sering diajukan
Bagaimana cara mengubah CSV menjadi JSON?
Apakah baris pertama harus berupa header?
Bisakah membaca tab atau titik koma, bukan hanya koma?
Bagaimana angka dan boolean diperlakukan?
Apakah data saya diunggah ke suatu tempat?
Alat terkait
Lanjutkan dengan alat praktis ini