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:
- Satu rekaman per baris, dipisahkan oleh jeda baris. RFC menentukan CRLF; sebagian besar parser modern juga menerima LF.
- Bidang dalam satu rekaman dipisahkan oleh karakter pembatas tunggal, koma dalam bentuk kanonik, tetapi titik koma, tab, atau pipa umum dalam varian regional dan lawas.
- Setiap rekaman harus memiliki jumlah bidang yang sama. Nilai yang hilang menjadi sel kosong; pembatas ekstra adalah kesalahan.
- Baris header bersifat opsional; jika ada, itu adalah baris pertama.
- Bidang yang mengandung koma, jeda baris, atau tanda kutip ganda harus diapit dengan tanda kutip ganda.
- Tanda kutip ganda yang disisipkan di dalam bidang yang dikutip di-escape dengan menggandakannya:
"She said ""hello""". - Tipe MIME yang terdaftar untuk CSV adalah
text/csv.
Mengapa empat pembatas alih-alih satu
Default adalah koma, tetapi setiap pembatas memecahkan masalah spesifik:
- Koma (
,), standar di AS, Inggris, dan lokal berbahasa Inggris lainnya. Excel membaca CSV dengan koma ketika pengaturan regional OS adalah bahasa Inggris. Default untukapplication/csvdi ekosistem alat yang lebih luas. - Titik koma (
;), default de facto di Eropa kontinental, Amerika Latin, dan wilayah lain di mana koma adalah pemisah desimal. Excel menggunakan pemisah daftar OS, jadi Excel dengan lokal Prancis atau Jerman menghasilkan CSV yang dipisahkan titik koma. - Tab, TSV (nilai yang dipisahkan tab) umum dalam data ilmiah, bioinformatika, dan konteks apa pun di mana data itu sendiri mengandung koma (bidang teks bebas, alamat).
- Pipa (
|), disukai dalam beberapa sistem perusahaan lawas di mana data dapat berisi koma, titik koma, DAN tab. Jarang menjadi pilihan pertama yang tepat tetapi berguna ketika tidak ada yang lain berfungsi.
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:
- 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.
- Perataan kunci-bertitik.
{address: {street, city}}menjadi kolomaddress.streetdanaddress.city.json_normalizemilik Pandas bekerja seperti ini. Lebih bersih untuk analis tetapi jumlah kolom meledak untuk data yang bersarang dalam. - Ledakan baris. Sebuah array menjadi beberapa baris, dengan bidang induk diulang.
{name: "Alice", tags: ["a", "b"]}menjadi dua baris, keduanya denganname=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:
- Penghapusan nol depan. Kolom kode pos seperti
01234dibuka sebagai angka1234. Solusi: awali dengan apostrof ('01234) di dalam CSV, atau gunakan wizard impor Excel dan secara eksplisit atur tipe kolom ke Teks. - Konversi tanggal otomatis. String yang terlihat seperti tanggal (
3/4/5,Mar-23) dikonversi secara diam-diam. Solusi yang sama. - Notasi ilmiah. ID numerik panjang (nomor kartu kredit, bilangan bulat besar) dikonversi menjadi
1.23E+15dan kehilangan presisi. JSON dapat melestarikan angka hingga 253−1 dengan tepat; untuk apa pun yang lebih besar, kirim nilai sebagai string dalam JSON. - Ketidakcocokan BOM UTF-8. Excel di Windows secara default Windows-1252; membuka CSV UTF-8 tanpa BOM merusak karakter non-ASCII (é, ü, å menjadi mojibake). Menambahkan BOM UTF-8 (
) di awal file memperbaikinya. Google Sheets menangani UTF-8 tanpa BOM dengan benar, jadi BOM bersifat platform-spesifik.
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
- Bidang yang berisi pembatas, dikutip secara otomatis.
San Francisco, CAdalam koma-CSV menjadi"San Francisco, CA". - Bidang yang berisi baris baru literal, dikutip; konten multi-baris legal di dalam kutipan per RFC 4180.
- Bidang yang berisi tanda kutip ganda, dikutip, dengan tanda kutip dalam digandakan:
She said "yes"menjadi"She said ""yes""". - Array dan objek kosong, diserialisasi sebagai
[]dan{}masing-masing di sel mereka. - Rekaman dengan kunci berbeda, gabungan semua kunci membentuk baris header; bidang yang hilang adalah sel kosong.
- Objek tunggal vs array, objek JSON tunggal menjadi CSV satu-baris.
Kapan menggunakan alat ini
- Mengekspor respons API untuk pemangku kepentingan yang menginginkan spreadsheet yang bisa mereka sortir dan filter.
- Mengimpor data JSON secara massal ke database SQL melalui
LOAD DATA INFILE(MySQL) atauCOPY(PostgreSQL). Keduanya mengharapkan input berbentuk CSV. - Analisis data cepat di Excel, Google Sheets, Pandas, R, Tableau, atau Power BI.
- Menghasilkan daftar surat dari respons API JSON kontak.
- Memigrasikan data antara sistem yang tidak berbagi API tetapi keduanya berbicara CSV.
- Meninjau file JSON dengan mata ketika terlalu repetitif untuk dibaca langsung, tampilan spreadsheet sering lebih mudah.
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
- Pembatas yang salah untuk audiens. Mengirim CSV-koma ke pengguna Excel Prancis menghasilkan file satu-kolom. Sesuaikan pembatas dengan lokal penerima.
- 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.
- 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. - 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.
- 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.
- 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
Konverter CSV → JSON
Konversi data CSV ke array atau objek JSON dengan pemisah yang dapat dikustomisasi.
Pemformat & validator JSON
Format, minifikasi, dan validasi JSON seketika. Indentasi dan pesan kesalahan yang dapat dikonfigurasi.
Generator skema JSON
Buat JSON Schema dari objek JSON apa pun. Mendukung objek bersarang, array, dan semua tipe.