About this tool
Converts a JSON array into CSV. If the array holds objects, the header row is built from every key seen across all the objects (in the order each key first appears), so it handles arrays where some objects are missing a field. If the array holds plain arrays, they're written out as CSV rows with no synthesized header.
How to use the JSON to CSV Converter
- Paste a JSON array of objects or arrays.
- Choose your delimiter if you need semicolon or tab instead of comma.
- Click "Convert to CSV", then copy or download the result.
Common use cases
- Turning an API response into a CSV you can open in a spreadsheet
- Exporting JSON test fixtures or log data for a quick look in Excel or Sheets
- Converting JSON from one tool into the CSV format another tool expects
Worked example
Given [{"name": "Grace Hopper", "role": "Computer Scientist, Rear Admiral", "years": 5}], the role value contains a comma, so the CSV output wraps it in double quotes automatically: "Grace Hopper","Computer Scientist, Rear Admiral",5 — the comma inside the quotes is preserved as part of the value rather than becoming an extra column when the CSV is read back in.
Things to watch out for
If your objects have different sets of keys, the header row is the union of all of them, and any object missing a key gets an empty cell in that column rather than an error. Nested objects or arrays inside a value are converted to a JSON string in that cell (CSV has no way to represent nested structure), which is worth checking if your data has deeply nested fields.
Frequently asked questions
The header row includes every key found across the whole array. Any object that's missing one of those keys gets an empty cell in that column, so every row stays the same width.
It's converted to a compact JSON string for that cell, since CSV has no way to represent nested structure. If you need the nested data broken into its own columns, flatten it before converting.
Yes, for a JSON array of objects the header row synthesized from the keys is counted. For a JSON array of plain arrays, there's no synthesized header, so the count is exactly the number of input rows.