CSV ⇄ JSON CONVERTER
Convert CSV to JSON or JSON back to CSV, with correct quoted-field and comma handling. Nothing leaves your browser.
How to convert CSV and JSON
- 1
Choose CSV → JSON or JSON → CSV.
- 2
Paste your CSV or JSON into the left box. For CSV → JSON, toggle "First row is headers" depending on your data.
- 3
Copy the converted result from the right box — it updates live as you type.
Questions
- How are CSV headers and columns handled?
- With "First row is headers" on (the default), the first CSV row becomes the property names for a JSON array of objects, and every following row must have the same number of columns or you'll get an error naming the row. With it off, CSV → JSON instead outputs a plain array of arrays — one array per row, no property names.
- What happens to nested JSON when converting to CSV?
- CSV is flat, so nested objects and arrays don't have a natural column layout. This tool doesn't flatten or drop them — each nested value is run through JSON.stringify() and placed in its cell as a JSON string (e.g. a tags array becomes ["a","b"] inside one CSV cell). Plain strings, numbers, booleans, and null are written as their normal text form (null and undefined become an empty cell).
- How are quotes and commas handled?
- Parsing follows standard CSV quoting: a field wrapped in double quotes can contain commas and newlines, and a literal quote inside a quoted field is written as two double quotes (""). Generating CSV does the reverse automatically — any field containing a comma, quote, or newline gets wrapped in quotes and its quotes doubled, so you never have to quote fields by hand.
- Is there a size limit, and will it handle large files?
- There's no hard limit — it's bounded only by your browser's memory, since parsing and conversion happen in a single pass over the text you paste. For files in the tens of megabytes, expect the browser tab to feel it; this tool is built for typical spreadsheet-sized CSV and JSON, not gigabyte-scale data pipelines.
- Is my data uploaded anywhere?
- No. All parsing and conversion happens locally in your browser using JavaScript — nothing you paste is sent to a server or stored anywhere.