JSON to CSV Converter
Convert a JSON array of objects into a downloadable CSV.
What is JSON → CSV?
The JSON to CSV converter takes a JSON array of objects and produces a CSV file. Keys across all rows are unioned and used as the header; nested objects are flattened with a configurable delimiter so they remain a single readable column.
How it works
We recursively walk each object, stringifying and escaping values per RFC 4180 (commas, quotes and newlines are wrapped in double quotes; embedded quotes are doubled). Headers are computed from the union of all keys across rows so heterogeneous arrays still produce a complete table.
- Paste JSON. Paste an array of (optionally nested) objects. Single objects are wrapped in an array automatically.
- Configure delimiters and flattening. Pick the output delimiter (comma / semicolon / tab), whether to use dotted flat keys, and whether to add a UTF-8 BOM for Excel.
- Preview and download. The first 10 rows are previewed live. Press Download to save the CSV.
Examples
[{a:1},{a:2}]
Produces a CSV with header 'a' and rows '1' and '2'.
Nested objects
[{user:{name:'A',age:30}},{user:{name:'B',age:25}}] becomes user.name,user.age\nA,30\nB,25.
Common mistakes
Non-array JSON
The input must be a JSON array. A single object is wrapped automatically; anything else throws a clear error.
Wrong delimiter for Excel
Excel in some locales expects ';' instead of ','. Pick the right one for your spreadsheet locale.
Alternatives
CSV to JSON
The inverse — turn a CSV back into JSON.
JSON Flatten
If you want flattened dot-notation JSON instead of CSV, use the Flatten tool.
Frequently asked questions
Does it handle nested objects?
Yes — nested keys are flattened into single column headers using a configurable delimiter (default '.').
Will values with commas break the CSV?
No. Every value is escaped per RFC 4180 (wrapped in double quotes, embedded quotes doubled) so commas, newlines and quotes cannot break the column structure.
Does it handle heterogeneous arrays?
Yes. The CSV header includes the union of all keys found across rows; cells missing a particular key are left empty.