Konverter CSV dan JSON
Ubah CSV menjadi array JSON berisi objek atau array, atau JSON kembali ke CSV. Mendeteksi pemisah dan membaca file Excel dengan titik koma dan koma desimal.
Contoh kode
Salin contoh ini ke proyek Anda sendiri. Masing-masing hanya memakai pustaka standar bahasanya, jadi tidak ada yang perlu diinstal.
const text = 'name,city\nAnn,Utrecht\nBob,"Den Haag, NL"\n'
const trimmed = text.trimEnd()
const records = [[]]
for (const match of trimmed.matchAll(/("(?:[^"]|"")*"|[^,\n]*)(,|\n|$)/gu)) {
if (match.index === trimmed.length) break
const [, field, end] = match
records.at(-1).push(field.startsWith('"') ? field.slice(1, -1).replaceAll('""', '"') : field)
if (end === '\n') records.push([])
}
const [header, ...rows] = records
const objects = rows.map((row) => Object.fromEntries(header.map((name, i) => [name, row[i]])))
console.log(JSON.stringify(objects))Fungsinya
Mengubah CSV menjadi array JSON dan JSON kembali ke CSV. Membaca CSV menurut RFC 4180: kolom bertanda kutip, tanda kutip ganda, dan baris baru di dalam kolom.
Cara memakai
- Tempel CSV atau JSON, atau seret file.
- Pilih CSV ke JSON atau JSON ke CSV. Biarkan pemisah dan desimal di Deteksi, atau atur sendiri.
- Salin atau unduh hasilnya, atau gunakan Pakai output sebagai input untuk menjadikannya masukan berikutnya.
Contoh
CSV nama;harga / keju;12,50 menjadi [{"nama": "keju", "harga": 12.5}], dan dengan Baris header mati menjadi [["nama", "harga"], ["keju", 12.5]].
Perlu diketahui
- Dengan baris header, setiap baris menjadi objek berkunci nama kolom; baris dengan jumlah kolom berbeda dilaporkan dengan nomor barisnya.
- Pemisah dideteksi dari beberapa baris pertama: koma, titik koma, tab, atau pipa. Excel dengan titik koma dan koma desimal dibaca Deteksi sebagai 12.5.
- Nilai hanya menjadi angka jika terbaca kembali sama, jadi
007,1.50, dan angka yang sangat panjang tetap teks. Matikan pembacaan angka untuk menjaga semuanya sebagai teks. - JSON ke CSV memerlukan array objek (kolomnya adalah gabungan kunci) atau array dari array. Nilai bersarang ditulis sebagai teks JSON.
Bagaimana file CSV dibaca?
Mengikuti RFC 4180: kolom dipisahkan oleh pemisah, kolom dalam tanda kutip ganda boleh berisi pemisah dan baris baru, dan tanda kutip di dalamnya ditulis dua kali. Pemisah dideteksi dari beberapa baris pertama: koma, titik koma, tab, atau pipa.
Pertanyaan umum
Mengapa angka saya menjadi teks, atau sebaliknya?
Nilai hanya menjadi angka jika terbaca kembali persis sama, jadi 007, 1.50, dan angka yang sangat panjang tetap teks. Matikan “Baca angka dan true/false” untuk menjaga semuanya sebagai teks.
Apa itu format Excel dengan titik koma?
Excel dengan pengaturan regional Indonesia menulis titik koma di antara kolom dan koma sebagai tanda desimal. Dengan pemisah atau desimal di “Deteksi”, 12,50 dibaca sebagai 12.5, dan JSON ke CSV menulis file titik koma jika Anda memilih koma desimal.
Apakah data saya dikirim ke mana pun?
Tidak. Konversi terjadi di browser Anda. Apa yang Anda tempel tidak pernah dikirim ke server kami.