About the JSON to CSV Converter
Paste an array of JSON objects into this JSON to CSV converter and it produces a spreadsheet-ready table in one pass. Every distinct key across every object becomes a column, in the order the keys are first encountered, so records with missing fields simply leave those cells blank rather than shifting the row out of alignment. You choose the delimiter — comma, semicolon, tab or pipe — and whether to emit a header row. Values that would confuse a spreadsheet are quoted automatically. The conversion is pure JavaScript running on your machine, so an export containing real user data never crosses the network.
How to use the JSON to CSV Converter
- 1
Paste your JSON array into the 'JSON array' box; a single object works too and becomes one row.
- 2
Choose a Delimiter — comma for most tools, semicolon for European Excel, tab for pasting straight into a sheet.
- 3
Leave 'Include header row' ticked unless you are appending to a file that already has headers.
- 4
Copy the CSV or download data.csv, then check the Summary panel for the row and column counts you expected.
What people use it for
Handing API data to someone non-technical
A colleague asking for last month's signups does not want a JSON file. Converting the endpoint response gives them something that opens in Excel with a double click.
Bulk import into a CRM or ad platform
Most upload forms accept CSV and nothing else. Convert your exported records, then map the generated header names to the platform's expected fields.
Quick analysis in a spreadsheet
Pivot tables, sorting and conditional formatting answer a one-off question about a few thousand records far faster than writing a script to do the same job.
How RFC 4180 quoting protects your data
CSV looks trivial until a value contains the delimiter. RFC 4180 defines the escape rules this converter follows. Any field containing the delimiter, a double quote or a line break is wrapped in double quotes, and each literal double quote inside is written twice. So an address reading Flat 2, 14 High Street is emitted wrapped in quotes, and a value containing a quotation mark has that mark doubled so the reader knows it is data rather than the end of the field. Fields with none of those characters are left bare, which keeps the output compact. Note what RFC 4180 does not cover: it says nothing about types, so every cell is text until a spreadsheet guesses otherwise. That guessing causes most CSV pain — Excel reads 00123 as 123 and can turn a code such as MAR1 into a date. If a column must survive intact, set it to text in the import dialog rather than expecting the file to carry that instruction.
Nested structures and the shape of the output
CSV is flat and JSON is not, so something has to give. When a value is itself an object or an array, it is serialised back to a compact JSON string and placed in a single cell, which means no data is lost even though it is not directly usable as a column. If you need tags to occupy their own columns, flatten the JSON first so that a nested address city becomes a top-level key. The column set is built as a union across all records rather than from the first object alone, which matters when an API omits null fields: a record missing the phone key still lines up with records that have one, and simply gets an empty cell. Every item in the array must be a plain object; an array of arrays or of bare strings is rejected, because there would be no meaningful column names to generate. Null and undefined values become empty cells rather than the literal text null.
Tips
- If Excel drops your whole row into column A, your locale expects semicolons — re-run with the semicolon delimiter.
- Tab-delimited output pastes directly into Google Sheets and Excel without going through the import dialog.
- Column order follows first appearance across the array, so put your most important keys first in the source objects.