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. 1

    Choose CSV → JSON or JSON → CSV.

  2. 2

    Paste your CSV or JSON into the left box. For CSV → JSON, toggle "First row is headers" depending on your data.

  3. 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.