How to convert JSON to CSV
- Choose JSON → CSV and paste an array of objects, for example an API response or a MongoDB export.
- Keep Flatten nested objects on so that
{"user": {"name": "Ada"}}becomes a column calleduser.name. Arrays inside a record are written as JSON text in a single cell. - Click Convert, then Download to get a
.csvfile you can open in Excel, Google Sheets or Numbers.
Columns are the union of all keys across every object, in the order they first appear, so records with missing fields simply get empty cells instead of breaking the table.
How to convert CSV to JSON
- Choose CSV → JSON and paste your CSV. The first row is used as the field names.
- Leave the delimiter on Auto unless detection guesses wrong. European Excel exports often use semicolons because the comma is the decimal separator.
- With Detect numbers & booleans on,
42becomes a number andtruea boolean. Turn it off to keep every value as a string, which is safer for ZIP codes and IDs with leading zeros.
Example
JSON input
[
{"id": 1, "name": "Ada", "address": {"city": "London"}},
{"id": 2, "name": "Grace, R.", "address": {"city": "New York"}}
]
CSV output
id,name,address.city
1,Ada,London
2,"Grace, R.",New York
Notice that Grace, R. is wrapped in double quotes because it contains a comma. A value that contains a double quote has it doubled (""), as required by RFC 4180.
Opening the CSV in Excel
If accented characters look garbled when you double-click the file, Excel has guessed the wrong encoding. The download includes a UTF-8 byte order mark so that modern Excel versions detect it correctly. If your Excel uses a semicolon list separator (common in Germany, France and much of Europe), pick Semicolon as the delimiter before downloading.
Frequently asked questions
What JSON shapes can be converted to CSV?
An array of objects works best, because each object becomes a row. A single object is treated as one row, and an array of primitive values becomes a single column called value.
How are nested objects and arrays handled?
Nested objects are flattened into dot-separated column names such as address.city. Arrays are kept as compact JSON text in one cell so no data is lost. Untick flattening to store whole nested objects as JSON text instead.
Why did my leading zeros disappear?
With type detection on, 00123 would become the number 123. This tool keeps values with leading zeros as strings, but if you need every value untouched, turn off Detect numbers & booleans.
Does it support quoted fields with line breaks?
Yes. The CSV parser follows RFC 4180: fields in double quotes may contain commas, line breaks and escaped quotes.
Is there a size limit?
Only your browser's memory. Tens of thousands of rows convert quickly because nothing is uploaded.
Related tools
Last updated: