Konverter CSV ↔ JSON

Konversi CSV dari spreadsheet menjadi array JSON atau ubah JSON kembali menjadi CSV, dengan deteksi delimiter otomatis. Data tetap berada di browser Anda.

Berjalan 100% di browser Anda. Apa pun yang Anda tempel tidak diunggah atau disimpan.
Input CSV atau JSON
Hasil
Siap.

Cara memakai konverter CSV ↔ JSON

  1. Pilih arah konversi: CSV → JSON atau JSON → CSV.
  2. Tempel data Anda. Untuk CSV, baris pertama dianggap sebagai baris header dan delimiter terdeteksi otomatis.
  3. Tinjau outputnya. Aktifkan konversi tipe jika Anda ingin angka dan boolean, bukan string.
  4. Salin hasilnya atau tempel ke kode, permintaan API, atau spreadsheet Anda.

Seluruh proses parsing berlangsung di browser Anda. Data spreadsheet Anda tidak diunggah atau disimpan di mana pun, sehingga alat ini aman untuk daftar pelanggan dan ekspor internal.

Cara CSV dipetakan ke JSON

CSV (comma-separated values) adalah tabel datar: satu record per baris, dengan kolom dipisahkan oleh delimiter. Jika ada baris header, setiap header menjadi sebuah key dan setiap baris berikutnya menjadi sebuah objek JSON. Seluruh file menjadi array berisi objek:

id,name,city
1,Ada,London
2,Linus,Helsinki
[
  {"id": "1", "name": "Ada", "city": "London"},
  {"id": "2", "name": "Linus", "city": "Helsinki"}
]

Mengonversi JSON kembali ke CSV bekerja sebaliknya: konverter mengumpulkan key dari objek-objek itu untuk membentuk baris header, lalu menulis satu baris per objek. Objek yang tidak memiliki suatu key mendapat sel kosong.

Deteksi otomatis delimiter

Meskipun namanya demikian, file "CSV" sering memakai pemisah lain. Program spreadsheet di wilayah yang memakai koma sebagai pemisah desimal biasanya mengekspor dengan titik koma, dan banyak alat database mengekspor nilai yang dipisahkan tab (TSV). Konverter memeriksa beberapa baris pertama dan memilih delimiter (koma, titik koma, tab, atau pipa) yang memecah baris menjadi jumlah kolom yang konsisten.

Kolom yang diberi tanda kutip (RFC 4180)

RFC 4180 adalah hal yang paling mendekati standar bagi CSV. Aturan utamanya: kolom yang berisi delimiter, tanda kutip ganda, atau pemisah baris harus dibungkus tanda kutip ganda, dan tanda kutip ganda di dalam kolom bertanda kutip di-escape dengan menggandakannya.

name,comment
"Smith, John","He said ""hello"""
"Lee","Line one
Line two"

Ini menghasilkan dua record, yang pertama dengan nama Smith, John dan komentar He said "hello", dan yang kedua dengan komentar yang berisi pemisah baris sungguhan.

Jebakan yang umum

JSON bersarang tidak muat di tabel datar

CSV tidak mengenal konsep bersarang. Objek bersarang biasanya diratakan dengan notasi titik, tetapi array tidak memiliki satu representasi yang jelas:

{"id": 1, "address": {"city": "Oslo", "zip": "0150"}, "tags": ["a", "b"]}

id,address.city,address.zip,tags
1,Oslo,0150,"[""a"",""b""]"

Array diserialisasi sebagai teks JSON di dalam sel. Jika data Anda bersarang dalam, pertimbangkan apakah CSV memang target yang tepat.

Konversi tipe bisa merusak data

Setiap nilai CSV adalah teks. Konversi tipe otomatis memang praktis, tetapi mengubah kode pos seperti 0150 menjadi 150, nomor telepon menjadi angka, dan ID panjang menjadi nilai yang dibulatkan (angka JavaScript hanya akurat hingga 253). Biarkan konversi tipe mati untuk kolom pengenal.

Byte order mark dan akhir baris

File yang disimpan Excel sebagai "CSV UTF-8" diawali byte order mark (BOM) yang tak terlihat dan bisa menempel pada nama header pertama. RFC 4180 menetapkan akhir baris CRLF, tetapi file yang hanya memakai LF umum ditemui dan pada umumnya diterima.

Tips

  • Pastikan nama header unik; header ganda saling menimpa sebagai key JSON.
  • Hapus spasi setelah delimiter (a, b) jika sumber Anda menambahkannya, atau spasi itu menjadi bagian dari nilai.
  • Validasi JSON hasilnya dengan JSON Formatter & Validator, atau ubah menjadi YAML dengan Konverter JSON ↔ YAML.

Pertanyaan yang sering diajukan

Bagaimana jika CSV saya tidak memiliki baris header?

Tanpa header tidak ada nama key yang wajar. Konverter kemudian menghasilkan array berisi array, atau membuat key sementara seperti column1, column2. Menambahkan baris header lebih dulu menghasilkan JSON yang lebih rapi.

Mengapa semua angka saya menjadi string?

CSV menyimpan semuanya sebagai teks, jadi konversi yang akurat mempertahankan string. Aktifkan konversi tipe untuk mendapatkan angka, true/false, dan null, tetapi hati-hati dengan nilai yang hanya tampak seperti angka.

Bisakah saya mengonversi objek JSON, bukan array?

File CSV mewakili banyak baris, jadi input yang wajar adalah array berisi objek. Satu objek menjadi satu baris data. Jika record Anda dibungkus dalam suatu properti seperti {"data": [...]}, tempel array di dalamnya.

Bagaimana cara membuka CSV di Excel dengan benar?

Gunakan fitur impor data Excel, bukan klik dua kali, agar Anda bisa memilih delimiter dan encoding serta menandai kolom ID sebagai teks untuk mempertahankan angka nol di depan.

Diperbarui

Tersalin ke clipboard