Convert JSON to CSV

Turn a JSON array into a CSV that opens in any spreadsheet, with every key as a column and accented characters intact in Excel.

Or paste into the box below.

Your data is converted on this device. Nothing is uploaded.

The Excel problem

Most JSON to CSV conversions end in Excel and Excel has one habit that ruins them: it opens a UTF-8 file as if it were in a legacy regional code page unless the file begins with a byte order mark. Every accented name, every currency symbol and every emoji comes out as mojibake. The Excel option adds the mark and nothing else changes.

How columns are chosen

Real JSON is rarely uniform. An API response might include a field on some records and omit it on others. Columns are the union of every key across every object, in the order they first appear, so the sparse fields get their own column and the rows line up.

Values are quoted only when they need to be, meaning when they contain the delimiter, a quote, a line break or leading or trailing spaces. The file stays readable in a text editor and every spreadsheet reads it correctly.

Common questions

Why are accented characters garbled when I open the CSV in Excel?

Excel assumes a CSV without a byte order mark is in an old regional encoding, so UTF-8 characters such as é or ü come out as two strange symbols each. Tick the Excel option and the file starts with a byte order mark, which tells Excel it is UTF-8.

What happens when objects have different fields?

Every key that appears in any object becomes a column, in the order keys are first seen and an object missing a field gets an empty cell. Without that, a missing field would shift every value after it into the wrong column.

What about nested objects and arrays?

They’re written into their cell as JSON text. A CSV cell can’t hold structure, so the choice is between flattening with invented column names or keeping the value intact as text and intact is the version you can get back later.

Which delimiter should I use?

Comma for most purposes. Semicolon if the file is going to someone using Excel in a country where the comma is the decimal separator, which covers much of Europe, since their Excel expects semicolons and puts everything in one column otherwise.

Can I paste JSON instead of uploading a file?

Yes, paste it into the input box. The output updates as you type and a mistake in the JSON is reported with the parser’s own message so you can find it.

Guides

The other tools

All of them work the same way: the file is read in your browser and never uploaded.