Konversi CSV ke array objek JSON
- Pilih CSV → JSON dan pilih pembatas sebenarnya antara koma, titik koma, dan tab.
- Tempel data dengan nama kolom di baris pertama atau muat file UTF-8.
- dan periksa kunci dan nilai yang dihasilkan.
- Salin JSON atau unduh sebagai file.
Nama kolom pada baris pertama tidak boleh kosong atau duplikat. Semua baris harus mempunyai jumlah kolom yang sama dengan baris pertama. Alat ini tidak secara otomatis menebak angka, tanggal, atau boolean; itu mempertahankan nilai CSV sebagai string. Spasi awal dan akhir juga merupakan bagian dari nilai.
id,name
001,Alice
002,BobHasil data baris pertama adalah:
{"id":"001","name":"Alice"}Sel kosong menghasilkan string kosong. Jika Anda mengubah kode seperti 001 menjadi angka, angka 0 di depannya akan hilang, jadi lebih baik simpan pengenalnya sebagai string. Program lain juga dapat mengonversi nilai string dalam file JSON, jadi periksalah aturan pemrosesan akhirnya.
Memproses koma, tanda kutip ganda, dan jeda baris dalam sel
Dalam CSV, jika nilai itu sendiri mengandung koma atau baris baru, biasanya digunakan untuk mengapitnya dalam tanda kutip ganda, dan untuk menulis tanda kutip ganda di dalam nilai dua kali. Misalnya data di bawah ini memiliki dua kolom dan nilai namanya adalah Alice, Kim.
id,name
001,"Alice, Kim""Dia berkata ""Halo""" mewakili satu sel dengan Dia berkata "Halo". Jeda baris di dalam tanda kutip tetap berada di sel yang sama, dan jeda baris di luar tanda kutip diproses ke baris berikutnya. Oleh karena itu, sulit untuk membaca data tersebut secara akurat hanya dengan memotongnya baris demi baris terlebih dahulu dan membaginya dengan koma.
Alat ini membaca jeda baris CRLF·LF·CR dan tidak membuat baris kosong tambahan dengan satu jeda baris di akhir baris terakhir. Baris kosong di tengah dianggap sebagai catatan, sehingga terjadi kesalahan jika jumlah kolom berbeda. Karakter yang tidak memenuhi aturan input yang ketat, seperti spasi setelah tanda kutip penutup, akan ditolak. Pembatasan TSV dan titik koma juga didukung oleh alat ini, yang menerapkan aturan kutipan yang sama, dan tidak berarti sama dengan dialek TSV di semua program.
Catatan: Deskripsi format CSV di RFC 4180. Dokumen ini adalah dokumen informasi yang merangkum praktik CSV yang umum digunakan.
Apa yang terjadi pada kolom dan nilai kosong saat menyimpan JSON sebagai CSV?
Input harus berupa array objek. Misalnya, [{"id":"001","active":true},{"id":"002","note":"memo"}]. Ia mengumpulkan kunci dari semua objek untuk membuat kolom, menggunakan urutan kunci pertama yang ditemukan, berdasarkan urutan kunci yang disebutkan dalam JavaScript. Kunci berbentuk bilangan bulat dapat dihitung dalam urutan yang berbeda dari kunci string biasa.
Semua kunci yang hilang dan null ditampilkan sebagai sel kosong. Karena string kosong juga dinyatakan sebagai sel kosong, ketiganya tidak dapat dibedakan dan dipulihkan hanya dengan menggunakan CSV. Boolean diekspor sebagai teks benar-salah, dan angka diekspor sebagai representasi string dari angka tersebut. Mengonversi CSV kembali ke JSON tidak secara otomatis memulihkan tipe data asli karena semua nilai berupa string.
Tolak objek dan array bersarang. Aturan untuk memperluas objek alamat ke dalam kolom seperti alamat.kota bergantung pada data dan tidak ditentukan secara otomatis. Karena JSON dibaca sebagai angka JavaScript, presisi angka besar atau desimal dapat berubah. Tolak nilai integer di luar rentang integer yang aman, dan teruskan pengidentifikasi seperti nomor urut panjang sebagai string yang diapit tanda kutip ganda dari awal. Kunci duplikat di JSON mungkin meninggalkan parser dengan nilai terakhir, jadi pertahankan yang asli.
Excel Hangul/UTF-8 BOM dan opsi interpretasi rumus
Input file hanya mendukung UTF-8. Untuk file pengkodean lainnya seperti CP949·EUC-KR, persiapkan sebagai UTF-8 terlebih dahulu. Opsi BOM dalam unduhan CSV menambahkan byte penandaan UTF-8 ke file. Tergantung pada programnya, ini mungkin membantu menentukan pengkodean karakter, namun tidak menyelesaikan semua pengaturan impor. BOM tidak disertakan dalam layar hasil dan salinan, juga tidak disertakan dalam unduhan JSON.
CSV bukan file XLSX, yang mempertahankan tipe data sel, warna, font, atau beberapa lembar. Jika dibuka di spreadsheet, 001 bisa saja diganti dengan angka 1 atau diartikan seperti tanggal. Tentukan kolom pengidentifikasi sebagai teks di layar impor program dan lihat hasil sebenarnya.
Opsi kutipan tunggal, yang diaktifkan secara default, menempatkan satu kutipan sebelum string dan nama kolom yang dimulai seperti rumus. Ini adalah proses untuk mengurangi risiko menafsirkan rumus string yang dimulai dengan tanda sama dengan, penjumlahan, pengurangan, dll., dan mengubah data sebenarnya. Angka numerik negatif ditangani secara berbeda dari string. Kami tidak menjamin keamanan semua spreadsheet dan proses penyimpanannya kembali, jadi harap periksa pengaturan impor dan konten untuk data dari sumber yang tidak dikenal. Jika Anda perlu mengekspor teks asli, pahami dampak opsi tersebut sebelum mematikannya.
Catatan Keamanan: OWASP CSV Injection.
Perintah untuk memeriksa kapan terjadi keterbatasan kapasitas dan kesalahan
Inputnya 2MiB berdasarkan UTF-8, datanya 10.000 baris dan 100 kolom, dan outputnya 8MiB atau kurang. JSON mengulangi nama kunci di setiap baris, sehingga bisa lebih besar dari CSV. Jika Anda dibatasi oleh keluaran, pisahkan masukannya. Data sedang diproses oleh browser, dan saat Anda menyegarkan, masukan dan hasil Anda hilang.
Untuk kesalahan penghitungan kolom, periksa apakah pembatasnya benar, apakah nilai yang mengandung koma diapit tanda kutip, atau apakah ada baris kosong. Kesalahan sintaksis JSON dapat diperiksa dengan JSON Cleanser. Konversi yang berhasil tidak berarti bidang wajib atau aturan bisnis API telah diverifikasi. Simpan dokumen asli secara terpisah dan tinjau hasilnya berdasarkan jumlah baris, jumlah kolom, dan nilai perwakilan.
Pertanyaan yang Sering Diajukan
Secara otomatis mengonversi angka dalam CSV ke nomor JSON?
Tidak. Simpan semua sel sebagai string. Ini adalah metode untuk menghindari perubahan acak pada pengidentifikasi seperti 001 atau string numerik yang panjang.
Bisakah saya juga mengunggah file Excel XLSX?
Tidak didukung. Ekspor sheet yang diperlukan dari spreadsheet sebagai UTF-8 CSV dan gunakan.
Apakah datanya sama persis saat saya bolak-balik antara CSV dan JSON?
Hal ini tidak selalu terjadi. Perbedaan antara null, kunci yang hilang, dan string kosong serta tipe data JSON tidak dapat dipulihkan dengan perjalanan bolak-balik CSV. Mengaktifkan opsi kutipan tunggal juga akan mengubah string tersebut.