DEVELOPER TOOL

JSON to CSV Converter

Paste a JSON array and convert it to CSV — nothing is uploaded, it all runs in your browser.

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

  1. Paste a JSON array of objects or arrays.
  2. Choose your delimiter if you need semicolon or tab instead of comma.
  3. Click "Convert to CSV", then copy or download the result.

Common use cases

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

What if some objects in my array are missing a field the others have?

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.

What happens to a nested object or array inside a value?

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.

Does the row count include the header row?

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.