CSV ⇄ JSON Converter
Paste CSV to get JSON, or an array of objects to get CSV. Delimiters are auto-detected and quoted fields are handled per RFC 4180. Everything runs in your browser.
Why CSV parsing is trickier than a split(",")
A field can contain the delimiter, a line break, or a quote — as long as the whole field is wrapped in double-quotes, with any internal quote written twice. So Ada,"Mathematician, writer",1843 is three fields, not four. This tool implements theRFC 4180 state machine: it walks the text character by character, tracking whether it's inside quotes, and only treats a delimiter or newline as structural when it isn't. CRLF and LF endings both work, and one trailing newline is ignored so you don't get a phantom empty row.
Delimiter auto-detect
European exports often use ; (because the comma is a decimal separator), data pipelines use tabs, and some logs use |. Auto-detect reads the first line, skips anything in quotes, and counts each candidate — the most frequent wins. Override it with the dropdown if your header line is unusual.
Two JSON shapes
- Header on → array of objects:
[{"id":"1","name":"Ada"}]. Best for feeding an API or a template. - Header off → array of arrays:
[["1","Ada"]]. Best when position matters more than names, or the file has no header.
Going back to CSV
JSON → CSV takes an array of objects and writes a header from the union of every object's keys, in the order they first appear, so a sparse object just leaves blank cells. Values that contain the delimiter, a quote or a newline are quoted automatically. Remember CSV has no types — the round trip CSV → JSON → CSV is lossless for text but won't turn "42" into a number.
Related: the JSON formatter to validate and pretty-print before converting, andBase64 if you need to embed the file somewhere text-only.
Related tools
Frequently asked questions
Which CSV rules does the parser follow?
How does delimiter auto-detect work?
What's the difference between the two JSON shapes?
What does JSON → CSV expect?
Are numbers and booleans preserved?
When does a value get quoted in the output?
Is my data uploaded?
Why does my JSON fail to convert?
Last reviewed: September 2026. Figures and formulas are checked against their published sources; see the site's data notes.