CSV ⇄ JSON converter

Paste or drop CSV on the left, JSON on the right — both directions work. Delimiters, quoted fields and nested objects handled. Nothing leaves this page.

Direction:

Input

Output

Related tools

How it works

The CSV side is a full RFC-4180-style parser: quoted fields with embedded commas, escaped quotes ("") and line breaks inside cells all survive the trip. Delimiters are auto-detected from the first line (comma, semicolon, tab or pipe) unless you pin one. Duplicate column names get _2 suffixes so nothing is silently overwritten, and a leading BOM is stripped.

By default every value stays a string — spreadsheets turn 00123 into a number and back with mangled results, so type conversion is opt-in via the checkbox. The JSON side flattens nested objects with dot notation (address.city) and stringifies arrays, which is the convention most import pipelines expect.

Files dropped on the input box are read by this page and never uploaded. Very large files (5 MB+) parse in a second or two but the textareas get slow to display — download the result instead of reading it on screen.

Frequently asked questions

Why did my zip codes lose their leading zeros?

Type conversion is on — turn it off to keep everything as strings. It exists for JSON APIs that expect real numbers.

What about semicolon CSVs from European Excel?

Auto-detection picks semicolons when they outnumber commas; you can also pin the delimiter manually.

Can it handle huge files?

It's a text tool, not a streaming engine — beyond roughly 5 MB the textarea becomes the bottleneck. Download the result rather than scrolling it.

Is my data uploaded?

No. Parsing and conversion happen entirely in this page's JavaScript.