JSON to CSV
Turn an array of JSON objects into a spreadsheet-ready CSV, nested fields included.
Runs in your browser — nothing you type is sent anywhere
Nested objects become dotted columns such as contact.email. Columns are taken from every row, not just the first, so a field that only some records have is still included.
CSV
The result appears here as you type. Nothing is sent anywhere — the work happens in this page.
About the JSON to CSV
API responses arrive as JSON and spreadsheets want CSV, so this conversion happens constantly — usually to get some data in front of someone who does not want to read JSON.
Two details decide whether the result actually opens correctly. The first is quoting: a field containing a comma, a quote or a line break has to be wrapped in quotes, and an embedded quote is escaped by doubling it rather than with a backslash. Get that wrong and the file looks fine until one row contains a comma, at which point every column after it shifts and the data is quietly corrupted.
The second is columns. Real JSON rarely has the same keys in every object, and taking the columns from the first row alone silently drops everything the later ones added. This takes the union of keys across every row, so a field that only some records carry still gets a column.
Nested objects are flattened into dotted column names, so a contact object with an email inside becomes a contact.email column. Arrays are joined into a single cell by default, because expanding them into columns produces a different shape for every row and a table nobody can read — though you can switch to keeping them as JSON if you would rather.
Line endings are CRLF and the separator can be a comma, a semicolon or a tab, which covers the locales where a comma is the decimal mark and Excel expects a semicolon instead.
How to use the JSON to CSV
Paste your JSON
An array of objects is the usual case. A single object works too and becomes one row.
Choose the separator
Comma is standard. Pick semicolon if your version of Excel expects it, or tab for pasting straight into a spreadsheet.
Check the columns
The row and column counts are shown underneath, and nested fields appear as dotted names so you can see the structure was preserved.
Download the file
Download it as a .csv ready to open in Excel, Numbers or Google Sheets, or copy the text directly.
Frequently asked questions
What JSON shape does this need?
How are nested objects handled?
What happens to arrays inside my data?
Why does my CSV open with shifted columns in Excel?
Do all rows need the same fields?
Is my data uploaded?
You may also need
JSON Formatter
Format, validate and minify JSON — with the exact line and column of any error.
JSON to YAML
Convert JSON into readable YAML for a config file, with optional key sorting.
JSON Validator
Find out exactly where your JSON breaks — and what is most likely causing it.
Base64 Encoder
Encode text to Base64, including emoji and every alphabet, with a URL-safe option.