JSON to CSV Converter
Paste a JSON array to get CSV, or paste CSV to get JSON. Nested objects are flattened into dotted column names such as address.city.
How the conversion works
A CSV file is a flat grid; JSON is a tree. Converting between them means deciding how nesting maps onto columns.
- Columns are collected from every object in the array, so records with different keys still line up — missing values become empty cells.
- Nested objects are flattened with dotted paths:
{"user":{"name":"Ada"}}becomes a column calleduser.name. - Arrays inside a record are serialised back to JSON inside the cell, since a single cell cannot hold multiple values.
- Escaping follows RFC 4180 — any value containing the delimiter, a quote or a newline is wrapped in double quotes, and internal quotes are doubled.
Things that break CSV files
| Problem | What happens | Fix |
|---|---|---|
| Commas inside values | Columns shift right from that row on | Quote the field — this tool does it automatically |
Leading zeros (007) | Excel strips them and shows 7 | Import as text rather than double-clicking the file |
| Long numbers (IDs, phone numbers) | Converted to scientific notation | Same — set the column type to text on import |
| Non-ASCII characters | Mojibake in Excel on Windows | Save as UTF-8 with a byte-order mark, or use the import wizard |
| Semicolon locales | Everything lands in one column | Switch the delimiter above to semicolon |
When not to use CSV
CSV has no types, no schema and no standard for nesting. If the consumer is another program rather than a spreadsheet, JSON, NDJSON or Parquet will save everyone time. CSV earns its place when a human needs to open the file in Excel, Numbers or Google Sheets.
Frequently asked questions
What JSON shape does this expect?
An array of objects — [{...}, {...}]. A single object is treated as a one-row array, and an object whose only value is an array is unwrapped automatically.
How are nested objects handled?
They are flattened into dotted column names by default. Turn the checkbox off to keep the nested structure serialised as JSON inside a single cell instead.
Is my data uploaded?
No. Parsing and conversion happen in your browser, so customer exports and internal data stay on your machine.
Why does Excel show my CSV in a single column?
Excel follows your regional list separator. In many European locales that is a semicolon, not a comma. Switch the delimiter above to semicolon and re-export.
Can it handle large files?
Files up to a few tens of megabytes convert fine. Beyond that, a streaming command-line tool such as jq or miller is a better fit.