How the conversion works
Paste a JSON array of objects, for example the body of an API response, and the CSV appears next to it. Each object becomes a row. The column list is the union of all keys found, in the order they first appear, so records that are missing a field simply get an empty cell instead of shifting the data.
Nested structures are flattened with dotted names: {"address":{"city":"Paris"}} becomes a column called address.city, and array items become tags.0, tags.1 and so on. If you prefer to keep nested values intact, untick Flatten nested objects and they are written as JSON text inside one cell.
Values that contain the delimiter, a double quote or a line break are wrapped in quotes and inner quotes are doubled, exactly as RFC 4180 requires, so the file re-imports cleanly. You can choose comma, semicolon (common in European Excel), tab or pipe, switch the header row off, or quote every field.
Worked example
Input:
[
{"id": 1, "name": "Ann", "address": {"city": "Paris"}, "tags": ["a", "b"]},
{"id": 2, "name": "Bob, Jr.", "address": {"city": "Rome"}}
]
Output:
id,name,address.city,tags.0,tags.1
1,Ann,Paris,a,b
2,"Bob, Jr.",Rome,,
Notice that the comma in Bob, Jr. forced quotes around that cell, and Bob's missing tags became two empty cells so the columns stay aligned.
Tips for spreadsheets
- If Excel opens the file as one column, try the semicolon delimiter or import with Data, From Text/CSV.
- Long numeric IDs such as 12345678901234567890 may be shown in scientific notation by spreadsheets. Import the column as text.
- A JSON array of arrays (like
[[1,"a"],[2,"b"]]) is converted row by row without a header. - To go the other way, use the CSV to JSON converter.
Frequently asked questions
What JSON shape does this accept?
An array of objects works best. A single object becomes one row, an array of arrays becomes rows without headers, and an array of plain values becomes a single column called value.
How are nested objects and arrays handled?
By default they are flattened into dotted column names such as address.city and tags.0. You can turn flattening off to keep each nested value as JSON text in one cell.
Will special characters and line breaks break the CSV?
No. Fields containing the delimiter, quotes or newlines are quoted and inner quotes are doubled, following RFC 4180, so spreadsheet programs and parsers read them back correctly.
Is there a size limit?
There is no fixed limit. The conversion happens in your browser, so the practical limit is your device memory. Several megabytes of JSON convert in well under a second.