JSON ke CSV Konverter

Konversi array JSON dari objek ke format CSV atau TSV.

Cara menggunakan

1. Tempel array JSON dari objek (atau objek tunggal) di area input.

2. Pilih pemisah Anda · koma untuk CSV, tab untuk TSV, atau format lain.

3. Klik Konversi untuk membuat keluaran CSV.

4. Salin ke clipboard atau unduh sebagai file.

Objek dan array bersarang diserialkan sebagai string JSON di keluaran CSV. Semua pemrosesan dilakukan di sisi klien · data Anda tidak pernah meninggalkan browser.

Mengapa konversi JSON-ke-CSV adalah alur kerja yang sangat umum

JSON adalah format payload dominan untuk API web modern; CSV adalah format penyebut umum terendah untuk data tabular. Excel, Google Sheets, SQL LOAD DATA, R, Pandas, Tableau, Power BI, dan hampir setiap pipeline ETL dapat menerima CSV secara langsung. Jadi ketika output API perlu mendarat di spreadsheet untuk pemangku kepentingan, atau di database untuk analisis, seseorang harus meratakan JSON menjadi baris-baris. Alat ini melakukan perataan itu di browser Anda, tanpa perjalanan ke server dan tanpa unggahan data yang berpotensi sensitif.

Format CSV (RFC 4180)

Tidak ada satu standar CSV formal tunggal, tetapi RFC 4180 (Oktober 2005, "Format Umum dan Tipe MIME untuk File Nilai yang Dipisahkan Koma (CSV)") adalah yang paling mendekati referensi kanonik di industri. Aturan yang disetujui semua orang:

Mengapa empat pembatas alih-alih satu

Default adalah koma, tetapi setiap pembatas memecahkan masalah spesifik:

Meratakan JSON bersarang: tiga strategi

JSON bersifat hierarkis; CSV bersifat datar. Tidak ada pemetaan tanpa kehilangan tujuan umum antara keduanya. Ketika input mengandung objek atau array bersarang, setiap konverter harus membuat pilihan:

  1. Sebaris sebagai string JSON. Bagian bersarang diserialisasi kembali ke JSON dan dijatuhkan ke satu sel CSV. Pendekatan default alat ini. Tanpa kehilangan; aman untuk perjalanan pulang-pergi; konsumen perlu mem-parse JSON dalam jika mereka menginginkan strukturnya.
  2. Perataan kunci-bertitik. {address: {street, city}} menjadi kolom address.street dan address.city. json_normalize milik Pandas bekerja seperti ini. Lebih bersih untuk analis tetapi jumlah kolom meledak untuk data yang bersarang dalam.
  3. Ledakan baris. Sebuah array menjadi beberapa baris, dengan bidang induk diulang. {name: "Alice", tags: ["a", "b"]} menjadi dua baris, keduanya dengan name=Alice. Terbaik untuk hubungan satu-ke-banyak; kehilangan model mental "satu rekaman per baris".

Jika Anda membutuhkan output kunci-bertitik atau baris-meledak, pra-proses JSON sebelum menempelkannya, baik melalui skrip Python / Node kecil atau json_normalize milik Pandas.

Header, perjalanan pulang-pergi tipe, dan jebakan auto-format Excel

JSON memiliki sistem tipe nyata (angka, string, boolean, null, array, objek); CSV hanya memiliki string. Konvensinya adalah konsumen menyimpulkan tipe dari konteks. Alat ini menghasilkan baris header dari gabungan semua kunci di semua objek input, meninggalkan bidang yang hilang sebagai sel kosong, menulis boolean sebagai true/false, dan menulis null JSON sebagai sel kosong.

Excel membantu dengan cara yang kadang-kadang menyakitkan:

Injeksi CSV, catatan keamanan yang layak diketahui

Jika CSV akan dibuka di Excel atau Google Sheets, sel yang dimulai dengan =, +, -, atau @ ditafsirkan sebagai rumus. Halaman CSV Injection OWASP mendokumentasikan kelas serangan, string berbahaya seperti =cmd|' /c calc'!A0 di bidang yang dikirim pengguna dapat menjalankan perintah saat admin membuka ekspor. Praktik defensif: awali sel apa pun yang dimulai dengan salah satu dari empat karakter tersebut dengan tanda kutip tunggal, atau bungkus dengan tanda kutip ditambah apostrof di depan. Penting untuk diketahui jika Anda mengekspor konten yang dihasilkan pengguna.

Kasus tepi umum yang ditangani konverter

Kapan menggunakan alat ini

Privasi

Ekspor CSV hampir selalu berisi PII, catatan pelanggan, data karyawan, log transaksi, daftar kontak. Konversi sisi server mengirim setiap rekaman melalui infrastruktur pihak ketiga, di mana ia hidup dalam log transit, log server, dan kemungkinan respons yang di-cache. Konversi berbasis browser menyimpan data di mesin Anda. Seluruh langkah meratakan-dan-mengutip di sini terjadi di JavaScript di dalam browser Anda; tidak ada yang diunggah.

Kesalahan umum

  1. Pembatas yang salah untuk audiens. Mengirim CSV-koma ke pengguna Excel Prancis menghasilkan file satu-kolom. Sesuaikan pembatas dengan lokal penerima.
  2. Menempelkan objek tunggal alih-alih array. Objek tunggal dikonversi menjadi CSV satu-baris dengan header kolom dari kunci. Untuk beberapa rekaman, bungkus mereka dalam array.
  3. Mengharapkan perataan gaya Pandas. Objek bersarang di alat ini diserialisasi sebagai string JSON di dalam sel. Jika Anda membutuhkan kolom address.street, ratakan terlebih dahulu.
  4. Menggunakan CSV untuk angka yang sangat besar. JSON dengan aman merepresentasikan bilangan bulat hingga 253−1 (sekitar 9 kuadriliun). Melewati itu, kirim sebagai string. Excel akan merusak ID numerik panjang bahkan ketika CSV melestarikannya.
  5. Membuka di Excel tanpa memikirkan encoding. Karakter non-ASCII membutuhkan BOM UTF-8 untuk Excel di Windows; Google Sheets dan Excel modern untuk web tidak membutuhkannya.
  6. Mengekspor teks yang dihasilkan pengguna tanpa membersihkan awalan rumus. Sel yang dimulai dengan =, +, -, atau @ adalah rumus di Excel dan Sheets. Injeksi CSV adalah serangan nyata terhadap admin yang membuka file yang diekspor.

Pertanyaan yang sering diajukan

JSON saya memiliki objek bersarang. Bagaimana mereka ditangani?

Setiap objek atau array bersarang diserialisasi sebagai string JSON di dalam sel CSV-nya. Jadi {user: {name: "Alice", role: "admin"}} menjadi satu kolom yang disebut user yang berisi {"name":"Alice","role":"admin"}. Ini melakukan perjalanan pulang-pergi tanpa kehilangan. Jika Anda membutuhkan kolom user.name dan user.role terpisah, pra-proses dengan json_normalize milik Pandas atau skrip perataan kecil.

Mengapa karakter non-Inggris saya terlihat rusak di Excel?

Excel di Windows membuka CSV dalam Windows-1252 secara default. CSV UTF-8 tanpa Byte Order Mark terlihat seperti mojibake (é → é). Perbaikannya: simpan file dengan BOM UTF-8, gunakan wizard impor Data → From Text Excel dan pilih UTF-8 secara eksplisit, atau buka file di Google Sheets, yang menangani UTF-8 tanpa BOM dengan benar.

Apakah alat menangani koma di dalam bidang?

Ya. Per RFC 4180, bidang yang mengandung pembatas, jeda baris, atau tanda kutip ganda secara otomatis diapit dalam tanda kutip ganda. Tanda kutip ganda yang disisipkan di-escape dengan menggandakannya. Jadi San Francisco, CA menjadi "San Francisco, CA" dan She said "hi" menjadi "She said ""hi""".

Apakah JSON saya dikirim ke server?

Tidak. Konversi berjalan sepenuhnya di browser Anda. Isi textarea tidak dikirim, dicatat, atau disimpan di mana pun. Ini penting karena rekaman yang diekspor sering kali berisi PII, data pelanggan, info karyawan, riwayat transaksi, yang tidak ingin Anda alirkan melalui infrastruktur orang lain.

Bisakah saya mendapatkan output yang dipisahkan tab (TSV)?

Ya, pilih "Tab" di dropdown pembatas. TSV adalah pilihan yang tepat ketika data Anda mengandung koma (alamat, bidang teks bebas, data keuangan dengan pemisah ribuan) dan Anda tidak ingin membungkus setiap sel lain dalam tanda kutip. Banyak format data bioinformatika dan ilmiah adalah TSV secara default.

Apa batas ukurannya?

Apa pun yang dapat ditampung browser Anda. Tidak ada batas sisi server karena tidak ada server yang terlibat. Puluhan megabyte JSON dikonversi dalam satu atau dua detik di perangkat modern; payload seratus megabyte mulai melambat. Untuk dataset yang sangat besar, batch mereka atau pindah ke konverter streaming di baris perintah.

Alat terkait