JSON to CSV converter

Convert a JSON array (or object) into a clean CSV file — nested fields are flattened automatically. Runs entirely in your browser; nothing is uploaded.

Delimiter:

How to convert JSON to CSV

Paste a JSON array of objects into the left box and press Convert to CSV. Each object becomes a row and every unique key becomes a column header. Nested objects are flattened using dot notation (so {"market":{"cap":100}} becomes a column named market.cap), and arrays are joined with semicolons. Copy the result or download it as a .csv file you can open directly in Excel, Google Sheets, or Numbers.

Common uses

Turning an API response into a spreadsheet, exporting data for reporting, migrating records between systems, preparing data for import into a database or CRM, or simply making machine-readable JSON human-readable. Because the conversion happens locally in your browser, it is safe to use with private or sensitive data — nothing is ever sent to a server.

How nested data becomes flat columns

CSV is a flat grid and JSON is a tree, so converting between them means deciding how to flatten. These are the rules this converter applies.
JSON inputCSV columnValue
{"city": "Muscat"}cityMuscat
{"addr": {"city": "Muscat"}}addr.cityMuscat
{"tags": ["a", "b"]}tagsa;b
{"note": null}note(empty cell)
{"ok": true}oktrue
Objects flatten into dot-notation columns to any depth. Arrays of simple values are joined with semicolons so they fit one cell. Arrays of objects are the one case with no clean flat representation — if your data has those, it is usually better to export each nested array as its own CSV.

Why Excel sometimes mangles a CSV

A correct CSV can still open badly, and it is almost always one of these four causes rather than a fault in the file.
SymptomCauseFix
Everything in one columnYour locale expects semicolons, not commasSwitch the delimiter to Semicolon above
Accented characters look wrongExcel assumed the wrong encodingUse Data, then From Text/CSV and choose UTF-8
Leading zeros disappearedExcel read a code as a numberImport as text, or prefix the value with an apostrophe
Long numbers became 1.23E+15Excel applied scientific notationFormat the column as text before importing
The leading-zero problem is the one that quietly corrupts data — postal codes, product SKUs and phone numbers all lose meaning when read as numbers. Importing via Data, then From Text/CSV rather than double-clicking the file lets you set column types and avoid it.

How CSV escaping works

CSV has one genuinely tricky rule: a value containing a comma, a double quote or a line break must be wrapped in double quotes, and any double quote inside it is doubled.

So the value Smith, John is written as "Smith, John", and a value containing a quotation mark becomes "He said ""hello""". This converter applies the rule automatically. It is worth knowing because it explains why hand-editing a CSV in a text editor so often breaks it.

Frequently asked questions

Does my JSON data get uploaded anywhere?

No. The conversion runs entirely in your browser using JavaScript. Your data never leaves your device, which makes it safe for confidential records.

How are nested objects handled?

Nested objects are flattened into dot-notation columns (e.g. address.city). Arrays of values are joined with a semicolon so they fit in a single cell.

Can I open the CSV in Excel?

Yes. Download the .csv file and open it in Excel, Google Sheets, LibreOffice, or Numbers. If your locale uses semicolons, switch the delimiter to Semicolon.

What if my objects have different keys?

The tool collects every key across all objects and creates a column for each. Missing values are left as empty cells.

Why does Excel put everything in one column?

Your Excel locale expects semicolons rather than commas as the separator — common across much of Europe. Switch the delimiter to Semicolon above and re-download.

Why did leading zeros disappear from my codes?

Excel read the value as a number. Import via Data then From Text/CSV and set the column type to Text, rather than double-clicking the file.

What happens to arrays of objects?

There is no clean flat representation for them. Simple arrays are joined with semicolons, but if your data contains arrays of objects, consider exporting each as its own CSV.

Does the converter handle deeply nested JSON?

Yes. Objects are flattened to dot notation at any depth, so a.b.c.d becomes a single column.

What if objects have different keys?

Every key found across all objects becomes a column, and objects missing a key get an empty cell in it.

Is my data uploaded?

No. Conversion runs entirely in your browser, so confidential exports and customer records never leave your device.

Related free tools

JSON formatterBase64 encoderCase converterWord counter