Skip to content

Konverter CSV ke JSON

Konversi CSV ke JSON di browser. RFC 4180, infer tipe, baris header, aman big-int. 100% privat, tanpa unggah.

Tanpa Pelacakan Berjalan di Browser Gratis
Preset
Opsi · , · auto · LF · header · no BOM · flatten
Delimiter
Baris pertama header
Infer tipe (angka, boolean, null)
0 karakter 0 baris
Output JSON
0 baris · 0 kolom
Ditinjau untuk kepatuhan RFC 4180, kebenaran Type Inference, pelestarian presisi bilangan bulat besar, dan perilaku autonames tanpa-header — Go Tools Engineering Team · May 9, 2026

Apa Itu JSON dan Mengapa Mengonversi dari CSV?

JSON (JavaScript Object Notation) adalah format universal untuk respons API, file konfigurasi, dan pertukaran data terstruktur — setiap bahasa pemrograman modern, setiap database, dan setiap framework web memiliki dukungan JSON kelas-satu. CSV (Comma-Separated Values), sebaliknya, adalah format tabular tertua dan paling didukung secara luas — setiap aplikasi spreadsheet, setiap ekspor database, dan setiap alat analitik dapat menghasilkannya. Mengonversi di antara keduanya adalah salah satu pekerjaan paling umum dalam data engineering: Anda menerima CSV dari spreadsheet, dump database, atau ekspor pihak ketiga, dan Anda butuh JSON untuk memberi makan API, menghidrasi frontend, atau memuat ke penyimpanan NoSQL. 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 CSV-ke-JSON 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. Infer Types dengan Keamanan Bilangan Bulat Besar.** Dengan Infer types aktif, string numerik menjadi angka, true/false menjadi boolean, sel kosong menjadi null. Tetapi pipeline inference memiliki dua pengaman penting: string ber-leading zero (007, 0123) dipertahankan sebagai string karena leading zero menandakan pengenal — mengonversi ke angka akan secara diam-diam menghapusnya. Dan bilangan bulat di atas 2^53 - 1 (9007199254740991) juga dipertahankan sebagai string untuk menghindari kehilangan presisi IEEE 754. ID snowflake Twitter, ID Discord, field MongoDB Long, dan resourceVersion K8s semua tetap tepat alih-alih dibulatkan secara diam-diam. String tanggal ISO sengaja dipertahankan sebagai string — JSON tidak punya tipe tanggal native.

**3. Autonames Header atau Pakai Baris Pertama.** Dengan Header aktif (default), baris pertama diperlakukan sebagai nama kolom dan setiap baris berikutnya menjadi objek JSON ber-kunci nama-nama itu. Dengan Header nonaktif, parser otomatis menamai kolom col1, col2, col3 — berguna untuk dump data mentah tanpa baris header. Baris chip Delimiter mencakup empat pemisah paling umum: koma (default RFC 4180), titik koma (locale Excel-EU), tab (TSV dari perangkat Unix dan gudang data), dan pipe (field dengan banyak koma). Pilih chip dan parsing — tidak perlu konfigurasi manual untuk CSV dunia nyata pada umumnya.

**4. Privasi 100% Berbasis Browser.** Data CSV Anda — yang sering berisi PII pengguna, ekspor database internal, catatan pelanggan, dan ekspor 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 CSV kompanion kami saat CSV adalah target Anda. Perlu memvalidasi output JSON sebelum mengonsumsinya? Coba JSON Formatter kami.

Kekuatan JSON adalah tipe yang presisi, bertingkat native, dan spek ketat yang diparsing identik di mana saja — format yang tepat kapan pun mesin mengonsumsi datanya. Kekuatan CSV adalah universalitas dan keterbacaan oleh manusia — format yang tepat kapan pun manusia membuka spreadsheet. Alat yang tepat tergantung pada konsumen: manusia yang membaca spreadsheet → CSV, mesin yang mengonsumsi API → JSON. Konverter ini menangani jembatan di kedua arah.

// Input CSV (comma + LF, header on, infer types on)
id,name,active,score
1,Alice,true,98.5
2,Bob,false,87
3,Carol,true,

// Output JSON
[
  { "id": 1, "name": "Alice", "active": true, "score": 98.5 },
  { "id": 2, "name": "Bob", "active": false, "score": 87 },
  { "id": 3, "name": "Carol", "active": true, "score": null }
]

// Same input with Header off (no first-row keys)
1,Alice,true,98.5
2,Bob,false,87

// Becomes
[
  { "col1": 1, "col2": "Alice", "col3": true, "col4": 98.5 },
  { "col1": 2, "col2": "Bob", "col3": false, "col4": 87 }
]

Fitur Utama

Parser State-Machine 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.

Infer Types dengan Keamanan Bilangan Bulat Besar

Infer types aktif mengonversi string numerik menjadi angka, true/false menjadi boolean, sel kosong menjadi null. Bilangan bulat di atas 2^53 - 1 tetap sebagai string untuk menghindari kehilangan presisi IEEE 754; string ber-leading zero (007, 0123) tetap sebagai string demi mempertahankan semantik pengenal.

Header Aktif/Nonaktif dengan Autonames

Header aktif (default) menggunakan baris pertama sebagai kunci JSON. Header nonaktif otomatis menamai kolom col1, col2, col3 secara berurutan — berguna untuk dump data mentah dan CSV yang dihasilkan mesin tanpa baris header. Autonames bersifat deterministik dan ramah-pipeline.

Delimiter Koma, Titik Koma, Tab, Pipe

Chip Delimiter satu-klik untuk empat pemisah paling umum: `,` (default RFC 4180), `;` (locale Excel-EU), `\t` (TSV dari perangkat Unix, BigQuery, Snowflake), dan `|` (field teks bebas dengan banyak koma). Parser beralih mode seketika — tidak perlu mengonversi file terlebih dahulu.

Deteksi Bilangan Bulat Besar

Bilangan bulat di atas 2^53 dideteksi saat parsing dan dipertahankan sebagai string di JSON — ID snowflake Twitter, ID Discord, field MongoDB Long, dan resourceVersion K8s tetap tepat alih-alih dibulatkan secara diam-diam oleh tipe number IEEE 754 JavaScript.

Dua Arah dengan Tukar

Satu tombol Tukar arah membalik konversi di tempat: input menjadi JSON, output menjadi CSV, teks saat ini dipertahankan. Round-trip data Anda lewat kedua arah untuk memverifikasi konversi lossless sebelum mengirimnya ke pipeline.

Contoh

Ekspor Spreadsheet dengan Header

id,name,email,role
1,Alice,alice@example.com,admin
2,Bob,bob@example.com,editor
3,Carol,carol@example.com,viewer
4,Dan,dan@example.com,viewer

CSV standar dari spreadsheet. Dengan Header aktif dan Infer types aktif, Anda mendapat JSON bertipe rapi: bilangan bulat tetap bilangan bulat, boolean/null terdeteksi.

Ekspor Log Berdelimiter Tab (TSV)

ts	event	user	duration
2026-05-09T10:00:00Z	signup	alice	142
2026-05-09T10:01:00Z	login	alice	87
2026-05-09T10:02:00Z	checkout	alice	312
2026-05-09T10:03:00Z	logout	alice	44

Pilih `\t` (Tab) sebagai delimiter. Default Header aktif otomatis menggunakan baris pertama sebagai kunci.

CSV Excel-EU (delimiter titik koma, CRLF)

id;name;price
1;Alice;1234,56
2;Bob;9876,54
3;Carol;42,00

Excel di locale DE/FR/IT/ES menghasilkan pemisah `;` karena koma adalah tanda desimal. Pilih `;` dari chip Delimiter — parser menangani sisanya.

Koma Tertanam dan Tanda Kutip yang Di-escape

name,role,note
"Smith, Jr.",admin,"He said ""hi"""
"Doe, Jane",editor,"Two
lines"

Kutipan RFC 4180 standar: field yang dikutip dapat berisi delimiter dan tanda kutip yang di-escape (digandakan). Parser adalah state machine — ia tidak pernah memecah di dalam tanda kutip.

CSV dengan ID Bilangan Bulat Besar

id,event,user
9007199254740993,signup,alice
9007199254740994,login,bob
9007199254740995,checkout,carol

Bilangan bulat besar melebihi rentang aman JavaScript (2^53 - 1). Dengan Infer types aktif, parser mendeteksi ini dan mempertahankan nilai sebagai string demi presisi — tanpa pemotongan.

CSV Tanpa Header

1,Alice,admin
2,Bob,editor
3,Carol,viewer
4,Dan,viewer

Nonaktifkan Header; kolom otomatis diberi nama `col1`, `col2`, `col3`. Gunakan ini untuk dump data mentah tanpa baris header.

Cara Menggunakan

  1. 1

    Tempel CSV Anda

    Masukkan atau tempel CSV Anda ke kolom input di atas. Alat menerima data berdelimiter koma, titik koma, tab, dan pipe. Anda juga dapat klik 'Muat contoh' untuk mencoba sampel seperti ekspor spreadsheet, log TSV, atau CSV Excel-EU dengan titik koma.

  2. 2

    Pilih delimiter (atau Tab)

    Klik `,` (default), `;` (titik koma Excel-EU), `\t` (TSV), atau `|` (Pipe) untuk mengganti delimiter dalam satu klik. Buka panel Options untuk kontrol mendetail: Header aktif/nonaktif dan Infer types aktif/nonaktif. Header nonaktif otomatis menamai kolom col1, col2, col3.

  3. 3

    Salin atau Unduh JSON

    Klik Copy untuk mengambil JSON ke clipboard, atau Download untuk menyimpannya sebagai file .json yang siap untuk kode, API, atau pipeline Anda. Untuk round-trip, klik Tukar arah untuk mengonversi JSON kembali ke CSV di tempat.

Jebakan Konversi Umum

Koma Tertanam Tidak Dikutip di Sumber

Jika CSV Anda dibangun 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. Solusinya adalah membungkus field yang bermasalah dalam tanda kutip ganda sesuai RFC 4180. Alat ini menangani field yang dikutip dengan benar, tetapi CSV sumber harus menggunakan kutipan yang tepat.

✗ Salah
name,role
Smith, Jr.,admin
// Parser reads 3 columns: "Smith", " Jr.", "admin"
✓ Benar
name,role
"Smith, Jr.",admin
// Parser reads 2 columns: "Smith, Jr.", "admin"

Titik Koma Excel-EU Diparsing sebagai Koma

Locale Excel Eropa (Jerman, Prancis, Spanyol, Italia, dll.) menghasilkan CSV berdelimiter titik koma karena koma dipakai sebagai pemisah desimal. Jika Anda membiarkan delimiter di `,` (default), setiap baris runtuh menjadi satu kolom dengan titik koma tertanam. Pilih chip Delimiter `;` — parser beralih ke mode titik koma dan menghasilkan kolom yang benar.

✗ Salah
// Wrong delimiter (default comma) on Excel-EU file
id;name;price
1;Alice;1234,56
// Each row becomes one column: { col1: "1;Alice;1234,56" }
✓ Benar
// Correct: pick `;` Delimiter chip
id;name;price
1;Alice;1234,56
// Output: { id: 1, name: "Alice", price: "1234,56" }

ID Bilangan Bulat Besar Kehilangan Presisi setelah JSON.parse

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 sebagai angka. Dengan Infer types aktif, alat ini mendeteksi nilai di atas batas aman dan mempertahankannya sebagai string, menjaga digit tetap tepat. Gunakan BigInt("9007199254740993") di kode Anda untuk mengonversi kembali ke tipe numerik.

✗ Salah
// Without big-int detection
{"id": 9007199254740993}
// JavaScript reads as 9007199254740992 (precision lost)
✓ Benar
// With Infer types on, big integers stay as strings
{"id": "9007199254740993"}
// Use BigInt(value) in code to preserve precision

Baris Header Mengandung Spasi

Jika header CSV Anda adalah `id, name, email` (dengan spasi setelah koma), kunci JSON menjadi "id", " name", " email" — termasuk spasi di awal. Parser mempertahankan header persis seperti yang diberikan, sesuai RFC 4180. Solusinya adalah membersihkan CSV sumber sebelum menempel, atau mengubah nama kunci di hilir (jq 'with_entries(.key |= ltrimstr(" "))' atau JavaScript Object.fromEntries(Object.entries(o).map(([k,v]) => [k.trim(), v]))).

✗ Salah
id, name, email
1, Alice, alice@example.com
// Output keys: "id", " name", " email" (with leading spaces)
✓ Benar
id,name,email
1,Alice,alice@example.com
// Output keys: "id", "name", "email" (clean)

Panjang Baris Tidak Konsisten

Ketika baris di CSV memiliki jumlah kolom berbeda (sebagian dengan koma di akhir, sebagian tidak), parser mengisi sel yang hilang dengan string kosong (atau null saat Infer types aktif) dan membuang ekstra di luar panjang header. Peringatan Schema notes muncul agar Anda tahu baris-baris telah dinormalisasi. Ini biasanya baik-baik saja, tetapi verifikasi output jika konsumen hilir mengharapkan bentuk baris yang ketat.

✗ Salah
name,role,note
Alice,admin
Bob,editor,first day
// Row 1 is short by one cell
✓ Benar
// Output (note empty/null cell in row 1)
[
  { "name": "Alice", "role": "admin", "note": null },
  { "name": "Bob", "role": "editor", "note": "first day" }
]

String Tanggal Dikoersi Secara Tak Terduga

String tanggal ISO 8601 (2026-05-09T10:00:00Z) sengaja dipertahankan sebagai string di output JSON — JSON tidak punya tipe tanggal native, jadi koersi akan menghasilkan objek Date JavaScript yang tidak bertahan saat serialisasi atau epoch numerik yang kehilangan informasi zona waktu. Ini memang demikian dirancang. Parsing tanggal pada titik penggunaan dengan new Date(value) atau pustaka tanggal pilihan Anda. Jangan menonaktifkan Infer types semata-mata untuk mempertahankan tanggal — itu juga akan mempertahankan angka sebagai string.

✗ Salah
// Expecting a Date object in the output
ts,event
2026-05-09T10:00:00Z,signup
// Output ts is the string "2026-05-09T10:00:00Z", NOT a Date
✓ Benar
// Correct: parse at the point of use in your code
const rows = JSON.parse(output);
const when = new Date(rows[0].ts);
// when is now a Date object

Kasus Penggunaan Umum

Ekspor Spreadsheet ke Impor API
Tempel CSV yang diekspor dari Excel, Google Sheets, atau Numbers dan dapatkan array objek JSON yang siap untuk POST ke REST API, mutasi GraphQL, atau endpoint impor massal. Kasus penggunaan paling umum — analis menghasilkan data spreadsheet, engineer butuh JSON bertipe untuk memberi makan backend.
Ekspor Excel ke Tooling
Konversi ekspor CSV Excel (termasuk file Excel-EU berdelimiter titik koma dengan chip `;`) menjadi JSON untuk diproses dengan tooling JavaScript, skrip jq, atau sistem apa pun yang membaca JSON. Parser menangani pelepasan BOM dan line ending CRLF dengan benar sehingga ekspor Excel tidak rusak di baris pertama.
Log TSV ke Analitik
Log dipisahkan tab dari ekspor BigQuery, unload Snowflake, pipeline Vector, atau perangkat Unix (cut, awk) sering tiba sebagai .tsv. Pilih chip Delimiter Tab dan dapatkan array JSON bertipe yang siap untuk analisis ad-hoc, ingest dasbor, atau transformasi tahap pipeline.
Dump CSV Database ke ETL
Konversi output PostgreSQL COPY TO CSV, MySQL SELECT INTO OUTFILE, atau dump CSV database apa pun ke JSON untuk dimuat ke penyimpanan NoSQL, dialirkan ke pipeline ETL JavaScript, atau dikirim ke BigQuery sebagai JSON yang dipisahkan baris. Deteksi bilangan bulat besar mempertahankan ID numerik yang melebihi rentang aman JavaScript.
Konsumsi Hasil Tes CSV Postman/Newman
Eksekusi tes Postman mengekspor laporan CSV pass/fail per permintaan. Konversi ke JSON untuk konsumsi programatis — alirkan ke dasbor status, pipeline alert, atau agregator hasil tes. Baris bentuk campuran (tes gagal punya kolom error tambahan) ditangani dengan pengisian kosong/null.
CSV Kecil ke Konfigurasi JSON Cepat
Punya CSV kecil berisi konstanta — kode mata uang, nama negara, SKU produk — dan butuh array JSON untuk file konfigurasi atau konstanta JavaScript? Tempel, salin, tempel. Dengan Infer types aktif, angka dan boolean diketik dengan benar; dengan Header aktif, Anda mendapat array objek ber-field yang siap dijatuhkan ke file .json.

Detail Teknis

Internal Parser State-Machine RFC 4180
Parser adalah implementasi finite-state-machine 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. State machine sadar-delimiter, sehingga beralih dari `,` ke `;` atau `\t` tidak mengubah semantik kutipan — hanya pemisah field-nya.
Algoritma Type Inference
Dengan Infer types aktif, setiap sel berjalan melalui pipeline deteksi yang berurutan. Pertama, sel kosong menjadi JSON null. Kedua, string literal true dan false menjadi boolean JSON. Ketiga, string ber-leading zero (^0[0-9]+$) dipertahankan sebagai string demi mempertahankan semantik pengenal — mengonversi ke angka akan secara diam-diam menghapus leading zero. Keempat, literal bilangan bulat diuji terhadap batas safe-integer (-2^53+1 hingga 2^53-1); nilai di luar rentang ini dipertahankan sebagai string untuk menghindari kehilangan presisi IEEE 754. Kelima, string tanggal ISO 8601 dideteksi melalui regex dan sengaja dipertahankan sebagai string — JSON tidak punya tipe tanggal native. Apa pun yang melewati kelima pengaman ini dikonversi melalui Number() (numerik) atau dipertahankan sebagai string (yang lainnya).
Pelepasan BOM dan Penanganan Enkoding
Semua input diperlakukan sebagai UTF-8. BOM UTF-8 opsional (0xEF 0xBB 0xBF) secara diam-diam dilepas dari sel pertama baris pertama saat hadir — ini mencegah byte BOM disertakan sebagai karakter aneh di awal nama kolom pertama (Excel di Windows umumnya menghasilkan BOM, merusak parser yang naif). Enkoding lain (Windows-1252, ISO-8859-1) tidak dideteksi otomatis; File API browser akan sudah men-decode byte sebagai UTF-8 pada saat teks mencapai alat ini. Jika Anda punya input non-UTF-8, konversikan terlebih dahulu dengan iconv atau opsi ekspor enkoding di editor Anda sebelum menempel.

Praktik Terbaik

Pilih Delimiter Secara Eksplisit untuk Data Non-Koma
Jangan mengandalkan deteksi otomatis. Jika CSV Anda menggunakan titik koma (Excel-EU), tab (TSV dari BigQuery, Snowflake, atau perangkat Unix), atau pipe (field dengan banyak koma), klik chip Delimiter yang sesuai sebelum menempel. Parser sadar-delimiter: mengganti chip akan langsung mem-parsing-ulang input. Ini menghindari mode kegagalan CSV-ke-JSON paling umum di mana setiap baris runtuh menjadi satu sel karena parser menggunakan pemisah yang salah.
Pertahankan Infer Types Aktif untuk JSON Bertipe
Dengan Infer types aktif (default), Anda mendapat JSON bertipe: angka sebagai angka, boolean sebagai boolean, null di tempat sel kosong muncul. Inilah yang diinginkan sebagian besar konsumen — API, frontend, kode JavaScript. Nonaktifkan Infer types hanya saat Anda secara khusus butuh setiap sel sebagai string (konsumen hilir yang skema-ketat, pipeline validasi yang membandingkan byte sumber yang persis sama). Pipeline deteksi memiliki pengaman untuk string ber-leading zero, bilangan bulat besar, dan tanggal ISO, sehingga pengenal dan tanggal tetap aman bahkan dengan inference aktif.
Kutip ID sebagai String di CSV Hulu
Jika CSV Anda dihasilkan oleh database atau pipeline yang Anda kontrol, hasilkan ID numerik besar (snowflake Twitter, ID Discord, resourceVersion K8s) sebagai string CSV yang dikutip ("9007199254740993") sehingga mereka melewati Type Inference dengan bersih. Parser akan mempertahankannya sebagai string bagaimanapun (deteksi big-int menangkap nilai di atas 2^53 - 1), tetapi kutipan eksplisit adalah kontrak hulu paling kuat dan menghindari ambiguitas tentang presisi.
Baris Header Harus Berada di Baris Pertama
Header aktif (default) otomatis mendeteksi baris pertama sebagai nama kolom. Jika CSV Anda memiliki komentar, baris kosong, atau metadata sebelum header, lepaskan sebelum menempel — parser tidak melewati baris non-data di awal. Untuk CSV tanpa header (ekspor mentah, dump yang dihasilkan mesin), nonaktifkan Header dan kolom akan otomatis dinamai col1, col2, col3 secara berurutan. Jangan mencoba memalsukan header dengan menambahkannya ke file tanpa header; nonaktifkan Header atau perbaiki sumbernya.
Gunakan Mode Stringify untuk Round-Trip CSV → JSON → CSV
Jika Anda berencana melakukan round-trip data lewat kedua arah (CSV → JSON → CSV), arah balik (JSON → CSV) memerlukan mode Stringify untuk array atau objek bertingkat apa pun agar bertahan secara lossless. Mode Flatten pada arah balik menghasilkan kunci bertanda titik (customer.address.city) yang tidak dapat direkonstruksi sempurna oleh parser CSV. Lihat Konverter JSON ke CSV kami untuk referensi arah balik lengkap dan catatan pengujian round-trip.

Pertanyaan yang Sering Diajukan

Apa fungsi alat ini?
Alat ini mengonversi CSV ke JSON langsung di browser Anda, dengan dukungan dua arah: klik Tukar arah untuk mengonversi JSON kembali ke CSV di panel yang sama. Tempel CSV di area input dan alat menghasilkan output JSON seketika — tanpa unggah, tanpa daftar, tidak ada yang meninggalkan perangkat Anda. Parser sesuai RFC 4180, menangani chip delimiter untuk koma, titik koma (Excel-EU), tab (TSV), dan pipe, dan opsi Infer types mengonversi string numerik menjadi angka, true/false menjadi boolean, dan sel kosong menjadi null. Alat ini juga menangani ID bilangan bulat besar yang akan kehilangan presisi melalui JSON.parse, koma tertanam di dalam field yang dikutip, tanda kutip ganda yang di-escape (digandakan), dan data tanpa header dengan kolom yang otomatis dinamai (col1, col2, col3).
Apakah data saya diunggah ke mana pun?
Tidak. Semua konversi berjalan 100% di sisi klien di browser Anda menggunakan JavaScript. Data CSV Anda tidak pernah ditransmisikan, tidak pernah disimpan di server mana pun, tidak pernah dicatat, dan tidak pernah dianalisis. Hal ini membuat alat ini aman untuk ekspor spreadsheet yang berisi PII, dump CSV database internal, catatan pelanggan, dan data sensitif apa pun. Anda dapat memverifikasi ini di tab Network browser Anda — menempel CSV memicu nol permintaan jaringan. Alat ini tidak menggunakan cookie untuk data input dan tidak ada analitik pihak ketiga yang akan menangkap apa yang Anda tempel.
Bagaimana cara kerja Type Inference?
Dengan Infer types aktif, setiap sel yang diparsing dilewatkan melalui pipeline deteksi kecil sebelum ditempatkan di JSON: string numerik (1, 42, -3.14) menjadi angka, true/false menjadi boolean, string kosong dan literal null menjadi JSON null, dan segala sesuatu yang lain tetap sebagai string. Ada dua pengaman penting. Pertama, string ber-leading zero seperti 007 atau 0123 dipertahankan sebagai string meskipun terlihat numerik — leading zero menandakan nilainya adalah pengenal (kode pos, kode telepon, ID urut) dan mengonversi ke angka akan secara diam-diam menghapus nol-nol tersebut. Kedua, bilangan bulat di atas 2^53 - 1 (9007199254740991) juga dipertahankan sebagai string untuk menghindari kehilangan presisi IEEE 754. String tanggal ISO (2026-05-09T10:00:00Z) sengaja dibiarkan sebagai string — JSON tidak punya tipe tanggal native, jadi melakukan koersi akan menghasilkan objek Date JavaScript yang tidak bertahan saat serialisasi.
Mengapa bilangan bulat besar dipertahankan sebagai string?
Tipe Number JavaScript menggunakan IEEE 754 double-precision dan hanya dapat merepresentasikan bilangan bulat secara tepat hingga 2^53 - 1 (9007199254740991). Pengenal di dunia nyata — ID snowflake Twitter, ID Discord, field MongoDB Long, resourceVersion K8s — adalah bilangan bulat 64-bit yang melebihi rentang aman ini. Jika parser memanggil Number() pada nilai-nilai ini, hasilnya akan dibulatkan secara diam-diam (9007199254740993 menjadi 9007199254740992). Pipeline Infer types mendeteksi nilai di atas batas safe-integer dan mempertahankannya sebagai string, sehingga digit-nya tetap utuh. Banner peringatan muncul di bawah output yang mencantumkan field yang terpengaruh. Untuk mengonversi kembali secara presisi di kode, gunakan BigInt("9007199254740993") pada nilai string JSON.
CSV saya menggunakan titik koma — bagaimana cara mem-parsing-nya?
Locale Excel Eropa (Jerman, Prancis, Spanyol, Italia, dll.) menghasilkan CSV berdelimiter titik koma karena koma dipakai sebagai pemisah desimal. Klik chip `;` pada baris Delimiter (atau buka panel Options lengkap dan pilih `;`) dan parser beralih ke mode titik koma seketika. Nilai numerik dengan desimal koma (1234,56) di dalam file seperti itu dipertahankan sebagai string oleh Type Inference karena notasi desimal Eropa bersifat spesifik-locale — konversi di kode jika Anda butuh nilai numerik. Parser tetap menerapkan aturan kutipan RFC 4180 dengan delimiter baru, sehingga field yang dikutip yang berisi titik koma di dalamnya ditangani dengan benar.
Apakah alat ini menangani TSV (berdelimiter tab)?
Ya. Klik chip Tab pada baris Delimiter dan parser memecah pada karakter tab alih-alih koma. TSV adalah format paling bersih untuk berbagi CSV lintas-locale karena tab kecil kemungkinannya muncul di dalam field teks, sehingga menghilangkan sebagian besar edge case kutipan. Ini adalah output default dari perangkat Unix (cut, awk), gudang data (BigQuery, Snowflake), dan didukung dengan baik oleh Excel di locale mana pun. Tempel isi file .tsv atau .tab Anda langsung — sisa parser (autonames header, infer tipe, deteksi bilangan bulat besar) bekerja secara identik.
Bagaimana jika CSV saya tidak punya baris header?
Nonaktifkan Header di panel Options. Parser akan memperlakukan baris pertama sebagai data alih-alih nama kolom dan otomatis menghasilkan kunci: col1, col2, col3, … satu per kolom. Output JSON adalah array objek dengan kunci sintetis ini. Ini berguna untuk ekspor mentah dari database yang menghilangkan header, file flat berformat tetap, dan CSV yang dihasilkan mesin. Jika Anda ingin nama kunci yang berbeda, konversi dengan autonames dahulu kemudian ubah nama kunci di pipeline hilir Anda (jq, JavaScript map, dll.). Alat tidak menyimpulkan kunci dari heuristik data — Header nonaktif selalu menghasilkan col1, col2, col3.
Bisakah ia menangani field yang dikutip dengan koma tertanam?
Ya. Parser adalah state machine RFC 4180 yang benar: ketika ia melihat tanda kutip ganda pembuka, ia beralih ke state QuotedField dan memperlakukan segalanya hingga tanda kutip ganda yang tidak di-escape berikutnya sebagai satu field tunggal, termasuk delimiter dan line ending tertanam (CR/LF). Tanda kutip ganda yang di-escape (digandakan, seperti "") dengan benar diciutkan menjadi satu tanda kutip. Ini berarti `"Smith, Jr."` diparsing sebagai satu field yang berisi `Smith, Jr.`, dan `"He said ""hi"""` diparsing sebagai `He said "hi"`. Parser split-by-comma yang naif gagal pada data dunia nyata semacam ini; alat ini tidak.
Mengapa tanggal saya dipertahankan sebagai string?
Memang demikian rancangannya. JSON tidak punya tipe tanggal native — hanya string, angka, boolean, null, array, dan objek. String tanggal ISO 8601 (2026-05-09T10:00:00Z) dipertahankan apa adanya sebagai string di output JSON, yang merupakan representasi yang benar dan lossless. Jika parser mengoersi-nya menjadi objek Date JavaScript, melakukan serialisasi JSON yang dihasilkan akan menghasilkan output yang berbeda (objek tanpa representasi round-trip yang berguna, atau timestamp numerik). Pertahankan tanggal sebagai string di JSON dan parsing-lah pada titik penggunaan dengan new Date(value) atau pustaka tanggal pilihan Anda. Ini sesuai dengan perilaku setiap pipeline JSON-dari-CSV utama: Pandas, jq, dan modul csv + json Python.
Apa yang terjadi jika baris memiliki panjang berbeda?
Baris bentuk campuran (sebagian dengan kolom lebih banyak atau lebih sedikit dari header) diisi agar sesuai dengan panjang header. Sel ekstra di luar jumlah header dibuang, dan sel yang hilang diatur ke string kosong (atau null saat Infer types aktif dan parser melihat nilai kosong). Peringatan Schema notes muncul di bawah output sehingga Anda tahu baris-baris telah dinormalisasi. Ini biasanya baik-baik saja untuk alat hilir yang menggabungkan kunci, tetapi verifikasi output jika konsumen Anda mengharapkan konsistensi bentuk baris yang ketat. Penyebab paling umum adalah koma di akhir pada beberapa baris atau field yang dikutip dengan line ending tertanam yang salah dihitung oleh eksporter hulu.
Seberapa besar file yang dapat saya tempel?
Di atas 100.000 karakter atau 2.000 baris, konversi langsung secara otomatis beralih ke mode manual: tombol Convert muncul di banner info dan konversi hanya berjalan saat Anda mengkliknya. Hal ini mencegah thread utama browser terblokir pada setiap penekanan tombol selama parsing berat. Untuk output di atas 5 MB atau 50.000 baris, alat memotong pratinjau JSON di layar ke 500 baris pertama dan menampilkan banner Showing the first 500 of N rows — tetapi tombol Download tetap menghasilkan file lengkap dengan setiap baris disertakan. Batas atas keras adalah input 10 MB; di atas itu alat menampilkan error dan meminta Anda mengurangi input.
Bisakah saya melakukan round-trip JSON → CSV → JSON?
Ya, ketika JSON-nya datar (tanpa objek atau array bertingkat). Untuk data bertingkat, arah balik (JSON → CSV) memerlukan mode Stringify untuk mempertahankan array dan objek sebagai JSON di dalam satu sel — yang kemudian round-trip secara lossless melalui konverter CSV → JSON ini saat Infer types aktif. Klik Tukar arah di bagian atas panel untuk membalik ke mode JSON-ke-CSV dan memverifikasi round-trip. Mode Flatten pada arah balik bersifat satu arah: ia menghasilkan kunci bertanda titik (customer.address.city) yang tidak dapat direkonstruksi sempurna dari CSV. Lihat Konverter JSON ke CSV kami untuk arah balik dengan dukungan Stringify penuh.