Konverter JSON ke CSV
Konversi JSON ke CSV di browser. Preset RFC 4180, Excel-EU, TSV, Pipe. Flatten objek bertingkat atau Stringify. 100% privat, tanpa unggah.
Opsi · , · auto · LF · header · no BOM · flatten
Apa Itu CSV dan Mengapa Mengonversi dari JSON?
CSV (Comma-Separated Values) adalah format data tabular tertua dan paling didukung secara luas dalam komputasi — setiap aplikasi spreadsheet, setiap database, setiap alat analitik, dan sebagian besar bahasa pemrograman memiliki dukungan CSV kelas-satu. JSON, sebaliknya, adalah format universal untuk respons API, konfigurasi, dan pertukaran data terstruktur. Mengonversi di antara keduanya adalah salah satu pekerjaan paling umum dalam data engineering: Anda menerima JSON dari API atau database NoSQL, dan Anda butuh CSV untuk dimuat ke Excel untuk analisis, ke tabel Postgres lewat COPY, atau ke gudang BigQuery / Snowflake. Alat ini dibangun untuk jalur konversi itu dan menangani empat skenario yang sebagian besar konverter online lakukan dengan buruk.
Alat ini memiliki empat perbedaan penting dibandingkan konverter online pada umumnya:
**1. Parser State-Machine RFC 4180.** CSV terlihat sederhana tetapi aturan kutipannya halus: field yang dibungkus dalam tanda kutip ganda dapat berisi koma, newline tertanam, dan tanda kutip ganda yang di-escape (digandakan, seperti ""). Parser split-by-comma yang naif gagal pada data dunia nyata — alamat dengan koma, field teks multi-baris, dan nilai yang dikutip yang berisi tanda kutip. Alat ini mengimplementasikan parser state-machine yang benar mengikuti RFC 4180 (spek IETF untuk CSV), dengan benar menangani field yang dikutip, delimiter tertanam, line ending tertanam, dan tanda kutip yang di-escape di setiap arah. Output round-trippable melalui modul csv Python, PostgreSQL COPY, AWS S3 SELECT, dan parser sesuai standar mana pun.
**2. Flatten Satu Arah / Stringify Reversibel.** JSON bertingkat secara fundamental tidak kompatibel dengan bentuk tabular datar CSV, dan sebagian besar konverter secara diam-diam merusak data saat menemukan objek atau array bertingkat. Alat ini memberi Anda pilihan eksplisit: mode Flatten menghasilkan kunci bertanda titik (customer.address.city) dan kunci ber-indeks (items.0.sku) untuk tata letak spreadsheet paling bersih — terbaca di Excel tetapi lossy untuk round-trip. Mode Stringify menyimpan array dan objek sebagai JSON di dalam satu sel — lebih jelek tetapi sepenuhnya round-trippable: CSV → JSON → CSV menghasilkan data identik saat dipasangkan dengan Infer types pada arah balik. Pilih berdasarkan tujuan Anda: analisis di Excel (Flatten) atau round-trip pipeline (Stringify).
**3. Deteksi Bilangan Bulat Besar.** Tipe Number JavaScript menggunakan double precision IEEE 754 dan secara diam-diam membulatkan bilangan bulat di atas 2^53 - 1 (9007199254740991). Hal ini mengganggu JSON dunia nyata: ID snowflake Twitter, ID Discord, field MongoDB Long, dan resourceVersion Kubernetes semuanya bilangan bulat 64-bit yang melebihi rentang aman. Sebagian besar alat JSON berbasis browser secara diam-diam menghasilkan angka yang salah tanpa peringatan. Alat ini mendeteksi nilai bilangan bulat besar saat parsing, menampilkan banner peringatan yang mencantumkan field yang terpengaruh, dan mempertahankan digit aslinya sebagai string di output CSV agar Excel dan Google Sheets tidak memotongnya menjadi notasi ilmiah.
**4. Privasi 100% Berbasis Browser.** Data JSON Anda — yang sering berisi PII pengguna, ekspor database internal, kunci API yang tertanam dalam payload, dan rahasia produksi — tidak pernah meninggalkan browser Anda. Tidak ada data yang dikirim ke server mana pun, tidak ada logging, tidak ada analitik yang menangkap input. Anda dapat memverifikasi ini di tab Network browser Anda. Ini adalah satu-satunya cara aman untuk menangani data sensitif di alat online. Lihat arah balik dengan mengklik Tukar atau gunakan Konverter JSON ke YAML kompanion kami saat YAML adalah target Anda. Perlu memvalidasi JSON sebelum mengonversi? Coba JSON Formatter kami.
Kekuatan CSV adalah universalitas dan kesederhanaan: setiap alat membacanya, parser-nya kecil, dan format file-nya dapat dibaca manusia di editor teks mana pun. Kelemahannya adalah tidak adanya informasi tipe (semuanya string sampai Anda memberitahu parser sebaliknya), tidak ada dukungan struktur bertingkat native, dan keanehan spesifik locale (titik koma Excel-EU, CRLF Windows vs LF Unix). Kekuatan JSON justru sebaliknya: tipe yang presisi, bertingkat native, dan spek ketat yang diparsing identik di mana saja. Alat yang tepat tergantung pada konsumen: manusia yang membaca spreadsheet → CSV, mesin yang mengonsumsi API → JSON. Konverter ini menangani jembatan di kedua arah.
// Input JSON
[
{ "id": 1, "name": "Alice", "role": "admin" },
{ "id": 2, "name": "Bob", "role": "editor" }
]
// Output CSV (RFC 4180 preset: comma + CRLF + no BOM)
id,name,role
1,Alice,admin
2,Bob,editor
// Same input with Stringify mode + nested data
[
{ "id": 1, "tags": ["a", "b"] }
]
// Becomes
id,tags
1,"[""a"",""b""]" Fitur Utama
Sesuai RFC 4180
Parser state-machine ketat mengikuti spesifikasi CSV IETF: penanganan benar untuk field yang dikutip, delimiter tertanam, CR/LF tertanam, dan tanda kutip ganda yang di-escape (digandakan). Output round-trip bersih melalui csv Python, PostgreSQL COPY, dan AWS S3 SELECT.
Preset Excel, TSV, dan Pipe
Preset satu klik untuk empat target paling umum: RFC 4180 (koma + CRLF), Excel (titik koma + CRLF + BOM UTF-8 untuk locale EU), TSV (Tab + LF), dan Pipe (| + LF). Beralih antar format tanpa mengutak-atik lima opsi terpisah secara manual.
Flatten atau Stringify Data Bertingkat
Penanganan bertingkat eksplisit: Flatten menghasilkan kunci bertanda titik (customer.address.city) untuk analisis spreadsheet yang bersih, Stringify menyimpan array dan objek sebagai JSON di dalam satu sel untuk round-trip lossless. Pilih berdasarkan apakah Anda butuh analisis di Excel atau round-trip pipeline.
Deteksi Bilangan Bulat Besar
Bilangan bulat di atas 2^53 dideteksi saat parsing dan dipertahankan sebagai string di CSV — ID Twitter, snowflake Discord, field MongoDB Long, dan resourceVersion K8s tetap tepat alih-alih dibulatkan secara diam-diam oleh tipe number IEEE 754 JavaScript.
Deteksi Otomatis NDJSON
JSON yang dipisahkan baris (.ndjson, .jsonl) dideteksi otomatis — tempel log streaming, ekspor event API, atau output data lake langsung tanpa membungkusnya secara manual ke dalam array. Setiap baris menjadi satu baris di CSV.
Dua Arah dengan Tukar
Satu tombol Tukar arah membalik konversi di tempat: input menjadi CSV, output menjadi JSON, teks saat ini dipertahankan. Round-trip data Anda lewat kedua arah untuk memverifikasi konversi lossless sebelum mengirimnya ke pipeline.
Contoh
Respons REST API
[{"id":1,"name":"Alice Chen","email":"alice@example.com","role":"admin"},{"id":2,"name":"Bob Garcia","email":"bob@example.com","role":"editor"},{"id":3,"name":"Carol Singh","email":"carol@example.com","role":"viewer"},{"id":4,"name":"Dan Müller","email":"dan@example.com","role":"viewer"}] Output API yang umum. Dengan Header aktif, Anda mendapat CSV tabular yang bersih dan siap digunakan di Excel.
GitHub Issues API
[{"id":1001,"title":"Bug: login redirects to 404","state":"open","labels":["bug","priority:high"],"user":{"login":"alice"}},{"id":1002,"title":"Feature: dark mode toggle","state":"open","labels":["enhancement"],"user":{"login":"bob"}},{"id":1003,"title":"Docs: update README","state":"closed","labels":["docs","good-first-issue"],"user":{"login":"carol"}}] Diambil dari /repos/{owner}/{repo}/issues. Flatten aktif, header aktif — memunculkan user.login sebagai kolom yang sudah di-flatten.
MongoDB mongoexport
[{"_id":{"$oid":"6634a1b2c3d4e5f600000001"},"email":"alice@example.com","metadata":{"signupDate":"2026-01-15T10:30:00Z","preferences":{"newsletter":true,"theme":"dark"}}},{"_id":{"$oid":"6634a1b2c3d4e5f600000002"},"email":"bob@example.com","metadata":{"signupDate":"2026-02-20T14:15:00Z","preferences":{"newsletter":false,"theme":"light"}}}] Bentuk ekspor MongoDB. Pilih mode Stringify jika Anda berencana melakukan round-trip CSV→JSON.
Log Event NDJSON
{"event":"signup","user":"alice","ts":1715000000}
{"event":"login","user":"alice","ts":1715000060}
{"event":"checkout","user":"alice","ts":1715000300} JSON yang dipisahkan baris (.ndjson/.jsonl) terdeteksi otomatis — tempel saja isi file langsung.
Pesanan E-commerce Bertingkat
[{"id":"ord-001","customer":{"name":"Alice Chen","email":"alice@example.com","address":{"city":"Seattle","country":"US"}},"items":[{"sku":"SKU-100","qty":2},{"sku":"SKU-205","qty":1}]},{"id":"ord-002","customer":{"name":"Bob Garcia","email":"bob@example.com","address":{"city":"Madrid","country":"ES"}},"items":[{"sku":"SKU-100","qty":1}]}] Mode Flatten menghasilkan kunci bertanda titik (customer.address.city, items.0.sku). Beralih ke Stringify untuk menyimpan array/objek sebagai JSON dalam satu sel.
Hasil Tes Postman
[{"name":"GET /users returns 200","status":"pass","duration":142},{"name":"POST /users creates record","status":"pass","duration":287},{"name":"GET /users/999 returns 404","status":"fail","duration":98,"error":"Expected 404, got 500"},{"name":"DELETE /users/1 returns 204","status":"pass","duration":156}] Ekspor tes Postman/Newman. Baris dengan bentuk campuran (sebagian punya error) akan diisi dengan sel kosong — Anda akan melihat peringatan Schema notes.
Cara Menggunakan
- 1
Tempel JSON Anda
Masukkan atau tempel JSON Anda ke kolom input di atas. Alat menerima array objek, objek tunggal, dan NDJSON (JSON dipisahkan baris) — dideteksi otomatis. Anda juga dapat klik 'Muat contoh' untuk mencoba sampel seperti respons REST API, ekspor MongoDB, atau log event NDJSON.
- 2
Pilih preset (atau atur Options)
Klik RFC 4180 (default), Excel (titik koma EU + BOM), TSV (Tab), atau Pipe untuk menyetel format target dalam satu klik. Buka panel Options untuk kontrol mendetail: Delimiter, Header, Quote (Auto/Always), Line ending (LF/CRLF), BOM, dan Nested (Flatten/Stringify).
- 3
Salin atau Unduh CSV
Klik Copy untuk mengambil CSV ke clipboard, atau Download untuk menyimpannya sebagai file .csv (.tsv dengan preset TSV) yang siap untuk Excel, Google Sheets, PostgreSQL COPY, atau pipeline data apa pun. Untuk round-trip, klik Tukar arah untuk mengonversi CSV kembali ke JSON di tempat.
Jebakan Konversi Umum
Nilai Tingkat Atas adalah Primitif
CSV pada dasarnya tabular — baris-baris field. Sebuah angka, string, atau boolean tunggal tidak punya struktur baris/kolom untuk diproyeksikan. Nilai JSON tingkat atas harus berupa objek (tabel satu baris) atau array (tabel multi-baris). Bungkus primitif dalam objek atau array terlebih dahulu.
42
[{"value": 42}] Array Bentuk Campuran (baris dengan kunci berbeda)
Ketika baris di array JSON memiliki kunci berbeda (sebagian punya field error, sebagian tidak), alat menggabungkan semua kunci di seluruh baris dan mengisi sel yang hilang dengan nilai kosong. Peringatan Schema notes muncul agar Anda tahu kolom telah digabungkan. Ini biasanya baik-baik saja, tetapi verifikasi output jika alat hilir mengharapkan skema ketat.
[
{"name": "GET /users", "status": "pass"},
{"name": "GET /users/999", "status": "fail", "error": "500"}
] // Output CSV (note empty cell in row 1) name,status,error GET /users,pass, GET /users/999,fail,500
Bilangan Bulat Besar Terpotong oleh Excel
ID snowflake Twitter, ID Discord, dan bilangan bulat 64-bit lainnya melebihi rentang aman JavaScript (2^53 - 1) dan kehilangan presisi saat JSON.parse() membacanya. Bahkan jika CSV mempertahankan digit, Excel akan menampilkannya dalam notasi ilmiah secara default. Solusinya ada dua: simpan ID sebagai string dalam JSON Anda sebelum mengonversi, dan aktifkan BOM (atau gunakan preset Excel) agar Excel mempertahankan sel sebagai teks.
{"id": 9007199254740993}
// JavaScript reads as 9007199254740992 (precision lost) {"id": "9007199254740993"}
// CSV preserves the string; Excel displays exactly Koma Tertanam Tidak Dikutip
Jika Anda membangun CSV dengan tangan menggunakan join(',') yang naif, setiap field yang berisi koma (Smith, Jr. atau 1,234.56) akan merusak batas kolom — parser melihat kolom ekstra di tempat yang seharusnya satu. Mode Auto Quote di alat ini mengikuti RFC 4180 dan secara otomatis membungkus setiap field yang berisi delimiter, tanda kutip ganda, CR, atau LF dalam tanda kutip ganda.
name,role Smith, Jr.,admin // Parser reads 3 columns: "Smith", " Jr.", "admin"
name,role "Smith, Jr.",admin // Parser reads 2 columns: "Smith, Jr.", "admin"
File Excel-EU Tidak Terbaca sebagai CSV-Koma
Locale Excel Eropa (Jerman, Prancis, Spanyol, Italia, dll.) memesan koma untuk pemisah desimal dan menggunakan titik koma sebagai delimiter field. CSV-koma standar terbuka dengan setiap baris runtuh ke kolom A. Solusinya adalah preset Excel: ia beralih ke ; + CRLF + BOM UTF-8 sehingga Excel mengurai file dengan benar di locale mana pun.
id,name,price 1,Alice,1,234.56 // Excel-EU mis-parses 1,234.56 as two columns
// Excel preset output: ; + CRLF + BOM id;name;price 1;Alice;1234,56 // Excel-EU reads cleanly with comma decimal
NDJSON Tidak Terdeteksi (bentuk input)
Deteksi otomatis NDJSON memerlukan satu nilai JSON valid per baris, tanpa kurung array di awal atau akhir. Jika Anda menempel array JSON dari array, atau file Anda punya [ di awal dan ] di akhir, alat memperlakukannya sebagai satu nilai JSON tunggal, bukan NDJSON. Lepas kurung pembungkus dan pastikan setiap baris adalah objek JSON yang berdiri sendiri.
[
{"event": "signup"},
{"event": "login"}
]
// Detected as a regular JSON array (works, but not NDJSON path) {"event": "signup"}
{"event": "login"}
// Each line is one JSON value — auto-detected as NDJSON Kasus Penggunaan Umum
- Respons API ke Spreadsheet
- Tempel respons REST API (array objek user/order/event) dan dapatkan CSV tabular bersih yang siap untuk Excel, Google Sheets, atau Numbers. Kasus penggunaan paling umum — analis dan PM butuh data berbentuk spreadsheet, engineer mengirim JSON dari backend.
- Ekspor MongoDB ke Gudang Data
- Konversi output JSON mongoexport (dengan pembungkus $oid dan dokumen metadata bertingkat) menjadi CSV untuk dimuat ke BigQuery, Snowflake, atau Redshift. Mode Stringify mempertahankan bentuk bertingkat secara lossless saat alat hilir mendukung JSON-dalam-sel.
- Triase GitHub Issues
- Tarik issue dari /repos/{owner}/{repo}/issues, tempel JSON, dan dapatkan CSV datar dengan id, title, state, labels, dan user.login sebagai kolom. Masukkan ke Sheets untuk memfilter, mengurutkan, dan menetapkan selama sprint planning.
- Tinjauan Log Event NDJSON
- Log streaming dari Cloud Logging, Datadog, Vector, atau pipeline Anda sendiri sering tiba sebagai NDJSON (.ndjson, .jsonl). Tempel isi file langsung — terdeteksi otomatis — dan dapatkan CSV untuk analisis ad-hoc tanpa membangun pipeline ETL nyata.
- Ekstraksi Pesanan E-commerce
- Konversi JSON order bertingkat (customer.address.city, array items) ke CSV datar untuk finance, fulfillment, atau tinjauan fraud. Mode Flatten menghasilkan satu kolom per field daun, siap dimuat ke Excel untuk pelaporan ad-hoc.
- Laporan Tes Postman/Newman
- Ekspor tes Postman menyertakan baris bentuk campuran (sebagian dengan field error opsional). Tempel JSON, dapatkan CSV dengan semua kunci digabungkan dan sel yang hilang terisi — sempurna untuk berbagi laporan tes gagal dengan non-engineer di Sheets.
Detail Teknis
- Parser State-Machine RFC 4180
- Kedua arah menggunakan parser state-machine terbatas yang benar mengikuti RFC 4180. State mencakup UnquotedField, QuotedField, AfterQuote, RowEnd, dan EndOfInput. Parser dengan benar menangani field yang dikutip yang berisi delimiter, CR/LF tertanam di dalam field yang dikutip, tanda kutip ganda yang di-escape (digandakan, seperti ""), dan newline di akhir. Ini menghasilkan output yang round-trip secara lossless melalui modul csv Python, PostgreSQL COPY, AWS S3 SELECT, dan parser sesuai standar mana pun.
- Algoritma Deteksi Bilangan Bulat Besar
- Sebelum melewatkan JSON melalui JSON.parse() (yang akan secara diam-diam membulatkan bilangan bulat besar lewat IEEE 754), alat menjalankan pemindaian regex pada teks JSON mentah mencari literal bilangan bulat di luar rentang aman (-2^53+1 hingga 2^53-1). Saat terdeteksi, path field yang terpengaruh dicatat dan banner peringatan Big-integer muncul di bawah output. Penulis CSV kemudian mempertahankan nilai-nilai ini sebagai string, memastikan presisi tepat melalui Excel, Google Sheets, dan konsumen hilir yang sadar teks mana pun.
- BOM dan Enkoding UTF-8 untuk Excel
- Semua input dan output adalah UTF-8. BOM UTF-8 opsional (0xEF 0xBB 0xBF) ditambahkan di awal output saat toggle BOM aktif atau saat preset Excel dipilih. Excel di Windows menggunakan BOM untuk mendeteksi enkoding UTF-8 — tanpanya, Excel jatuh kembali ke locale sistem (Windows-1252 di AS, Windows-1251 di Rusia, dll.) dan mengacaukan karakter non-ASCII. Parser modern (csv Python, Pandas, jq, PostgreSQL) umumnya tidak butuh BOM dan mungkin menyertakannya sebagai karakter aneh di awal sel pertama, jadi biarkan BOM nonaktif untuk pipeline non-Excel.
Praktik Terbaik
- Pilih Preset Sebelum Mengutak-atik Opsi
- Preset RFC 4180, Excel, TSV, dan Pipe menyetel lima opsi sekaligus (delimiter, line ending, mode quote, BOM, header). Pilih preset terdekat dahulu, lalu utak-atik opsi individual hanya jika perlu — ini menghindari kesalahan umum mengubah satu opsi dan lupa yang lain (misalnya, beralih ke titik koma tetapi membiarkan LF, yang masih salah diparsing oleh Excel-EU di Windows).
- Flatten untuk Analisis, Stringify untuk Round-Trip
- Gunakan Flatten saat tujuannya Excel, Sheets, atau analisis sekali pakai — kunci bertanda titik menghasilkan tata letak spreadsheet paling bersih. Gunakan Stringify saat Anda perlu round-trip CSV → JSON → CSV tanpa kehilangan data — array dan objek bertahan sebagai JSON di dalam satu sel. Beralih di tengah ekspor dan menjalankan ulang tergolong murah; pilih berdasarkan konsumen.
- Gunakan BOM Hanya untuk Excel
- BOM UTF-8 diperlukan agar Excel di Windows mendeteksi enkoding dengan benar. Setiap parser lain (csv Python, Pandas, jq, PostgreSQL COPY, BigQuery) entah mengabaikan BOM atau menyertakannya sebagai karakter aneh di awal sel pertama, merusak nama kolom. Biarkan BOM nonaktif untuk pipeline dan aktifkan (atau gunakan preset Excel) hanya saat tujuannya Excel.
- Simpan ID Besar sebagai String di JSON
- ID snowflake Twitter, ID Discord, field MongoDB Long, dan resourceVersion K8s adalah bilangan bulat 64-bit yang melebihi rentang aman JavaScript (2^53 - 1). Simpan sebagai string JSON ("id": "9007199254740993") sebelum mengonversi — CSV akan mempertahankan digit dengan tepat, sementara literal numerik akan dibulatkan secara diam-diam oleh JSON.parse().
- Validasi Bentuk Baris Sebelum Memuat
- Baris bentuk campuran (sebagian objek dengan kunci yang tidak dimiliki yang lain) digabungkan dengan sel kosong di output, dan alat menampilkan peringatan Schema notes. Untuk konsumen skema-ketat (BigQuery, Redshift COPY), validasikan bahwa semua baris berbagi kunci yang sama sebelum mengekspor — atau tangani nilai yang hilang secara eksplisit di pipeline Anda. Gunakan JSON Formatter kami untuk memeriksa bentuk input terlebih dahulu.
Pertanyaan yang Sering Diajukan
Apa fungsi alat ini?
Apakah data saya diunggah ke mana pun?
Apa perbedaan antara mode Flatten dan Stringify?
Bagaimana penanganan bilangan bulat besar seperti ID Twitter atau kunci Snowflake?
Mengapa Excel menampilkan CSV saya dalam satu kolom?
Apakah alat ini mendukung NDJSON atau JSON Lines?
Apa itu RFC 4180?
Mengapa beberapa sel dibungkus tanda kutip dan yang lain tidak?
Bisakah saya melakukan round-trip CSV → JSON → CSV tanpa kehilangan data?
Bagaimana cara mendapatkan file TSV?
Apa yang terjadi pada input yang sangat besar?
Enkoding apa saja yang didukung?
Alat Terkait
Lihat semua alat →Decode & Encode Base64 Online — Konversi Instan di Browser
Encoding & Pemformatan
Decode dan encode Base64 online gratis. Konversi real-time dengan dukungan UTF-8 dan emoji. 100% privat di browser Anda. Tanpa pendaftaran.
Konverter CSV ke JSON
Encoding & Pemformatan
Konversi CSV ke JSON di browser. RFC 4180, infer tipe, baris header, aman big-int. 100% privat, tanpa unggah.
JSON Diff (Bandingkan)
Encoding & Pemformatan
Bandingkan dua file JSON langsung di browser Anda. Sorotan side-by-side, output RFC 6902 JSON Patch, abaikan field seperti timestamp dan ID. 100% privat, tanpa upload.
Format & Validasi JSON Online — Gratis, Cepat, Privat
Encoding & Pemformatan
Format, validasi, dan rapikan JSON langsung di browser Anda. Alat online gratis dengan deteksi error, minifikasi, dan salin sekali klik. 100% privat.
Validator JSON Schema
Encoding & Pemformatan
Validasi JSON terhadap JSON Schema apa pun secara instan di browser Anda. Mendukung Draft 2020-12, 2019-09, dan Draft-07 dengan pesan error berbasis path yang presisi. 100% privat — tanpa upload, tanpa akun, gratis.
Konverter JSON ke YAML
Encoding & Pemformatan
Tempel JSON, dapatkan YAML seketika. Konversi langsung di browser. Siap untuk K8s/Compose, indentasi 2/4 spasi, penanganan kutipan otomatis. 100% privat.