🔧Toolify

Konverter CSV ↔ JSON (sesuai RFC 4180)

Tempel CSV atau JSON. Konverter mengurai CSV yang sesuai RFC 4180 (menangani kolom yang dikutip dengan koma, kutip yang di-escape, nilai multi-baris). Untuk JSON-ke-CSV, menerima array-of-objects (menggunakan kunci sebagai header) dan array-of-arrays.

Output
[
  {
    "name": "Alice",
    "age": "30",
    "city": "Tokyo"
  },
  {
    "name": "Bob",
    "age": "25",
    "city": "Seoul"
  },
  {
    "name": "Carol",
    "age": "42",
    "city": "Madrid"
  }
]

Cara kerjanya

Mengapa RFC 4180 penting

CSV terlihat sederhana tetapi memiliki kasus tepi: kolom yang berisi koma harus dikutip; kolom yang berisi kutipan harus meng-escape sebagai kutipan ganda; kolom dapat berisi baris baru jika dikutip. Parser split-on-comma naif rusak pada data dunia nyata. Konverter ini mengimplementasikan tata bahasa RFC 4180 dengan tepat.

Parser naif juga rusak pada ekspor Excel yang menggunakan titik koma (umum di lokasi Eropa di mana ',' adalah pemisah desimal) atau tab (TSV). Dropdown pembatas menangani keempat varian umum.

Bentuk JSON untuk output

Array of objects (default dengan baris header): setiap baris menjadi {kolom: nilai}. Bentuk JSON paling umum, mudah digunakan dalam bahasa apa pun.

Array of arrays (baris header nonaktif): setiap baris menjadi [v1, v2, ...]. Berguna ketika kolom tidak diberi nama atau Anda menginginkan struktur posisional.

Saat JSON ke CSV, konverter mendeteksi bentuk mana yang Anda miliki. Objek: mengekstrak kunci unik di semua baris untuk header. Array: menulis baris apa adanya.

Jebakan umum

Lokasi Excel: di beberapa instalasi Excel Eropa, pembatas default adalah ';' bukan ','. Jika CSV Anda terlihat seperti satu kolom besar saat diimpor, beralih ke ; di dropdown pembatas.

BOM (Byte Order Mark): beberapa ekspor Excel mengawali file dengan U+FEFF. Kami meneruskannya; jika parser hilir Anda gagal, hapus 3 byte pertama.

Baris baru di akhir: CSV yang diakhiri dengan '\n' menambahkan baris kosong terakhir di beberapa parser; kami memfilter baris kosong secara otomatis.

Angka sebagai string: CSV tidak memiliki tipe — '42' menjadi string "42" dalam JSON. Jika Anda memerlukan nilai bertipe, jalankan langkah pasca-pemrosesan yang memaksa kolom angka yang dikenal.

Pertanyaan umum

Apakah ini menangani kolom yang dikutip dengan koma?

Ya — quoting RFC 4180 didukung penuh. "Doe, John" diurai sebagai satu kolom.

Bagaimana kutipan yang di-escape ditangani?

Per RFC 4180, literal '"' di dalam kolom yang dikutip ditulis sebagai '""' (dua kutipan). Parser menangani ini dengan benar.

Bisakah kolom berisi baris baru?

Ya, bila dikutip. "baris 1\nbaris 2" di dalam kutipan diperlakukan sebagai satu kolom dengan baris baru tertanam.

Apakah ini mendukung BOM (UTF-8)?

BOM diteruskan. Jika konsumen hilir Anda tidak mentoleransinya, hapus 3 byte pertama (EF BB BF) dari CSV.

Bagaimana dengan file yang sangat besar?

Browser menangani beberapa MB tanpa masalah. Untuk CSV yang sangat besar (100MB+), gunakan parser streaming seperti Papa Parse dengan worker, atau alat CLI.

Apakah angka dipertahankan sebagai angka?

CSV → JSON: semua nilai menjadi string (CSV tidak bertipe). JSON → CSV: angka menjadi sel CSV tanpa kutipan. Untuk mendapatkan JSON bertipe, pasca-proses kolom yang Anda tahu bersifat numerik.

Mengapa JSON saya menampilkan string kosong alih-alih null?

CSV merepresentasikan nilai yang hilang sebagai sel kosong. Kami memetakannya ke string kosong. Untuk mendapatkan null dalam JSON, pasca-proses output.

Apakah data meninggalkan browser saya?

Tidak. Konversi berjalan secara lokal; tidak ada yang dikirim ke server.

Alat terkait

Terakhir diperbarui:

Coba prompt AI kami →