JSON to CSV Converter
Flatten JSON arrays into spreadsheet-ready rows.
An API hands you back JSON, and someone on your team just wants to open it in Excel. That request is simpler to say than to do, because JSON can nest objects inside objects and pack arrays inside those, while a spreadsheet only understands flat rows and columns.
Converting JSON to a spreadsheet
- Paste or upload the JSON array you want to convert.
- Let the tool flatten nested objects into dotted column names, such as
address.city. - Check how array values inside each record are handled — usually joined into one cell or expanded into extra columns.
- Convert and review the header row before you trust it.
- Download the CSV and open it in Excel, Sheets or a database import tool.
Why flattening is the whole problem
A row in a spreadsheet is rectangular: fixed columns, one value per cell. A JSON record is not — it can nest three objects deep and hold an array of an arbitrary length inside any of them. There is no lossless, universally agreed way to squeeze that shape into a grid.
The standard compromise is dot notation. {"address": {"city": "Turin", "zip": "10100"}} becomes two columns, address.city and address.zip. It works well for nested objects. It works far less well for arrays, because an array can have a different length on every record, and a spreadsheet needs the same columns on every row.
What typically happens to an array field
- A short array of strings, such as tags, gets joined into one cell with a separator like a semicolon.
- An array of objects sometimes gets serialised back into a raw JSON string inside a single cell, which is honest but not pretty to read.
- Some converters expand a small, fixed-length array into numbered columns like
colors.0,colors.1. - A record with an empty array produces an empty cell, indistinguishable from a missing field once it is in CSV.
- None of these is wrong exactly — they are different trade-offs, and you should know which one your export made.
JSON to CSV questions
Will every JSON file convert cleanly to CSV?
A flat array of simple objects with the same keys converts cleanly almost every time. Deeply nested or irregularly shaped JSON, where records have different fields or wildly different array lengths, produces a messier spreadsheet no matter how the flattening is done.
What happens if records have different keys?
The output gets one column for every key seen across all records, and any record missing a given key gets a blank cell for it. This is normal and not an error, but it can make the header row longer than any single record.
Why do some of my numbers now have quote marks around them?
A spreadsheet program does that automatically to protect a value it thinks might get misread, commonly a long ID number or anything starting with a zero. It is Excel guarding against exactly the leading-zero problem, and it happens on the way in, not during conversion.
Can I get my flattened CSV back into the original nested JSON?
Only partially. If the flattening used dot notation, a reverse conversion can usually rebuild the object nesting, but any array that was joined into a single cell has lost its original boundaries and cannot be split back with full confidence.
Is the data processed on a server?
Yes. The data is sent to the server for conversion, but your JSON content is not stored once processed.