How to use JSON to CSV
- Paste a JSON array of objects — the top level must be an array, not a single object.
- Press convert; syntax errors are reported rather than guessed at.
- Copy the CSV, or save it as a .csv file and import it into your spreadsheet.
- The input must be an array. Wrap a single object in square brackets, or extract the array your API nested it inside.
- Nested objects and arrays are written as JSON text within one cell.
- Conversion runs in your browser, so exported customer or transaction data is not uploaded anywhere.
Where the columns come from
The header row is the union of every key across every object, in the order each key is first seen. That matters when your objects are not uniform — an API that omits null fields, or a export where later records gained a column. Taking the keys from the first object alone, which is the usual shortcut, silently drops those later columns. Objects missing a key get an empty cell rather than a shifted row.
Quoting is what makes the file actually open
CSV has one real rule and it is easy to get wrong: a field containing a comma, a double quote or a line break must be wrapped in double quotes, and any quote inside it doubled. Without that, an address field with a comma in it becomes two columns and every subsequent column in that row shifts left. This converter applies the RFC 4180 rules, so a value like he said “hi” or a multi-line note imports as one cell. It also preserves 0 and false, which naive converters turn into blanks.
Nested objects and arrays
CSV is flat and JSON is not, so nested values are written as their JSON text inside a single cell rather than expanded into columns. That keeps the data rather than losing it, but a deeply nested payload is a poor fit for a spreadsheet either way — if you need the nested fields as columns, flatten the JSON first so each leaf has its own top-level key.
Opening it without Excel mangling it
Excel will interpret anything that looks like a date, so an ID like 03-04 becomes 3 April and a long number loses its trailing digits to scientific notation. The reliable fix is to use Data → From Text/CSV rather than double-clicking the file, and set those columns to Text during the import. Google Sheets is better behaved but does the same to long numeric IDs.
Frequently asked questions
What JSON structure is required?
How are nested objects handled?
Can I import the CSV to Excel?
Why does my JSON not convert?
Will commas inside my data break the CSV?
Why do my long ID numbers change when I open the file?
How do we know nothing is uploaded? Test it yourself on the privacy proof page.