About JSON to CSV
APIs return JSON and import screens expect rows and columns, so the conversion comes up constantly. Doing it by hand is slow and easy to get wrong: objects in the same array can have different keys, nested objects do not map to a single cell, and a value that contains a comma, a quote or a line break will break the file unless it is escaped.
This converter takes an array of objects, or an object that wraps the array under a key such as data, items or results. It flattens nested objects into dotted column names, builds the union of all keys, escapes every field for RFC 4180 and shows a preview table. Copy the CSV text or download a .csv file; everything is processed in the tab.
What this tool does
Array or wrapped array
Paste a top-level array, or an object whose array sits under data, items, rows, results, records, list, values or entries; the key that was used is named in the preview.
Dot-notation flattening
A nested object such as user with a name property becomes a user.name column, while nested arrays are written as compact JSON in a single cell.
Union of every column
Objects with different keys share one header row, and a property that is missing from one object becomes an empty cell instead of shifting the data.
RFC 4180 escaping
Fields containing commas, quotes or line breaks are wrapped in double quotes and inner quotes are doubled, with CRLF between records.
Preview before download
The first ten rows appear in a table with the full column list, so a wrong shape or a badly flattened key is visible before you save the file.
Copy and download
Copy the CSV text to the clipboard or download a .csv file under a name you choose; numbers keep their original digits and accents stay intact.
How to use JSON to CSV
- 01
Paste the JSON
Paste an array of objects, or an object that contains the array under a key such as data, items or results.
- 02
Press Convert
The converter validates the JSON, reports syntax errors by line and column, then flattens every object into cells.
- 03
Check the preview
Look at the column headers and first rows; dotted names come from nested objects and empty cells mean the key is missing from that object.
- 04
Name the file and download
Type a name for the .csv file and press Download, or use Copy CSV to paste the text into a spreadsheet or editor.
How this tool works
- Works with
- JSON → CSV
- Processing
- Client-side, in your browser. Nothing is uploaded.
- Requirements
- Chrome, Edge, Firefox or Safari · JavaScript enabled
Limitations worth knowing
- Comma-delimited only: there is no semicolon or tab option, so some spreadsheet locales need to import the file with a comma delimiter.
- Arrays of objects inside a record are written as JSON text in one cell instead of being expanded into extra rows.
- Limits: 5 MB of JSON, 50,000 rows and 1,000 columns, because the whole result is held in the tab's memory.
- A key that already contains a dot is flattened the same way as nesting, so the header can be ambiguous for unusual data.
Privacy and file handling
The JSON is parsed and converted to CSV inside this browser tab. Nothing is uploaded, stored or logged, and the download is created locally from a Blob. Closing the page discards the input and the result.
Read the full privacy policy