CSV to JSON Converter (& JSON to CSV)

Two-way conversion with proper quoted-field parsing, delimiter detection and type conversion — live in your browser, nothing uploaded.

Converting between CSV and JSON, correctly

CSV looks trivial until real data arrives: fields containing commas, quotes or line breaks must be wrapped in quotes and escaped by doubling ("") per RFC 4180 — a naive split(',') destroys such files. This converter implements a proper state-machine parser, so "Turing, Alan" stays one field. In CSV → JSON mode your header row becomes object keys and each row an object — the array-of-objects shape REST APIs and databases expect. Optional type conversion turns 42, true and empty cells into native numbers, booleans and null (switch it off to protect ZIP codes and IDs with leading zeros).

JSON → CSV accepts an array of objects, unions all keys into columns, serializes nested structures as JSON strings and escapes output correctly for Excel and Google Sheets. Delimiter auto-detection handles the semicolon-separated CSVs that European Excel locales export, plus TSV. Everything runs locally — safe for customer data. Validate tricky JSON first in the JSON Formatter, or compare two exports with the Text Diff Checker.

Frequently Asked Questions

How does CSV → JSON work?
First row = keys (toggleable), each following row = one JSON object. Quoted fields with commas/quotes/newlines are parsed per RFC 4180; types can be auto-converted.
Can it do JSON → CSV too?
Yes — paste a JSON array of objects. Columns are the union of all keys; nested values become JSON strings; special characters are quoted and escaped.
Is my data uploaded?
No — conversion is 100% local JavaScript. Safe for sensitive spreadsheets and exports.
Semicolon or tab separated files?
Pick the delimiter or use auto-detect. European Excel often exports semicolons; TSV is common in database dumps.
Why did 00042 become 42?
Type conversion was on. Disable "Convert numbers & booleans" to keep everything as strings — recommended for ZIP codes and phone numbers.