JSON to CSV Converter — Free & In Your Browser

Turn a JSON array into a spreadsheet-ready CSV, nested keys flattened.

🔒 Runs in your browser — files never uploaded ⚡ No signup 💯 Free

Paste a JSON array and get CSV you can open straight in Excel or Google Sheets. Columns are built from the union of every object's keys — objects with missing fields just get empty cells — and nested objects are flattened into dotted column names like address.city.

Conversion happens live in your browser as you type; API responses and exports never touch a server.

How to use JSON to CSV

  1. Paste your JSON — an array of objects is the natural shape; an array of arrays works too.
  2. Read the CSV on the right. It updates as you type; errors point at what's wrong.
  3. Copy or download the result as a .csv and open it in any spreadsheet.

How JSON shapes map to rows

CSV is a flat grid, so the converter needs tabular JSON: an array of objects becomes rows with a header built from every key seen anywhere in the array. Nested objects flatten into dotted columns ({"user":{"name":…}} → a user.name column); arrays inside a record are kept as JSON strings, because inventing multiple columns for them is guesswork this tool refuses to do silently.

If your JSON is a single object or a deeply irregular tree, there is no honest CSV for it — that's a limitation of the format, not the converter. Restructure to an array of records first.

Quoting is handled properly

Fields containing commas, quotes or line breaks are quoted and escaped per RFC 4180 — the details naive string-joining gets wrong and the reason "my CSV breaks in Excel" is such a common bug. Values that look numeric stay exactly as they are.

Going the other way

The CSV to JSON converter is this tool's mirror — or just press the swap button.

Frequently asked questions

What JSON shape converts cleanly to CSV?

An array of objects — each object a row, keys as columns. Objects with differing keys are fine; the header is the union and gaps become empty cells. A single object or an irregular tree has no honest flat representation — restructure it into records first.

How are nested objects handled?

Flattened into dotted columns: {"user":{"name":"Ada"}} becomes a user.name column. Arrays inside a record stay as JSON strings rather than being guessed into columns.

Will Excel open the result correctly?

Yes — quoting follows RFC 4180, so embedded commas, quotes and line breaks survive. If your locale's Excel expects semicolons, use Data → From Text/CSV and pick the comma delimiter, or convert back the other way with a semicolon.

Is my data uploaded?

No — conversion runs in your browser. Paste an API response with real customer data and it never leaves your machine.