Skip to content
FlipConverto home

JSON to CSV Converter

Convert JSON to a CSV file that Excel and Google Sheets open directly — one row per object, nested keys flattened — or turn CSV back into JSON. The result is CSV, not an .xlsx workbook.

Loading JSON to CSV Converter…

Runs entirely in your browser. What you enter stays on your device — nothing is sent to a server. Verify it yourself

How do you convert JSON to Excel?

Turn the JSON array into CSV — one row per object, one column per key — and open the CSV in Excel. This tool does that, flattening nested objects into dot-path columns and adding a UTF-8 BOM so Excel shows accents correctly.

Cost
Free, no limits
Upload
None — runs on your device
Sign-up
Not required
Works offline
Yes, once loaded

How to convert JSON to Excel

  1. Paste or open the JSON

    Paste an array of objects into the JSON box, or use Open file. Load sample shows nested keys and accents.

  2. Pick a separator

    Comma suits most setups; choose semicolon if your Excel puts everything in one column, or tab for a .tsv file.

  3. Check the preview

    The first ten rows appear as a table so you can see the columns before downloading.

  4. Download for Excel

    Download CSV for Excel saves a file with a UTF-8 BOM; open it in Excel or import it into Google Sheets.

Examples

  • [{"name": "Ana", "address": {"city": "Porto"}, "tags": ["a", "b"]}]name,address.city,tags Ana,Porto,"[""a"",""b""]"

    The array stays JSON, quoted because it contains quotes and a comma.

  • [{"a": 1}, {"b": 2}]a,b 1, ,2

    Different keys still line up; missing values are empty cells.

  • zip;city 01234;Málaga[{"zip": "01234", "city": "Málaga"}]

    CSV → JSON detected the semicolon and kept the leading zero.

Key features of the JSON to CSV Converter

  • One row per object, with the union of every object’s keys as columns
  • Nested objects flattened to dot-path columns; arrays kept as JSON in one cell
  • RFC 4180 quoting for separators, quotes and line breaks inside values
  • UTF-8 BOM on the download so Excel opens accented text correctly
  • Optional apostrophe guard against formula injection in text cells
  • CSV → JSON with separator detection, header handling and leading-zero-safe types

What it converts

Directions

  • JSON → CSV
  • CSV → JSON

Separators

  • Comma
  • Semicolon
  • Tab (.tsv)

Opens in

  • Microsoft Excel
  • Google Sheets
  • LibreOffice Calc
  • Apple Numbers

When should you use this?

  • Opening an API response or database export in Excel or Google Sheets to filter and sort it.
  • Handing JSON data to a colleague who works in spreadsheets.
  • Turning a spreadsheet saved as CSV into JSON fixtures or seed data.

Limitations

  • The output is CSV, not .xlsx: one sheet, no formatting, column widths or formulas.
  • Arrays inside objects are not spread across rows or columns; each is written as JSON in a single cell.
  • CSV → JSON keeps keys flat: a column named address.city stays that key rather than becoming a nested object.
  • Input is limited to 5 MB; very wide or long files may be slow to preview on older phones.

Troubleshooting

Accented letters appear as é in Excel

Use the Download CSV for Excel button rather than pasting the copied text into a new file; the download carries the UTF-8 BOM Excel looks for.

CSV → JSON says a quoted field is never closed

A value opens with a double quote that has no partner. Find the line named in the message and double any quote inside the value ("").

Common mistakes to avoid

  • Double-clicking a comma-separated file in a semicolon locale and assuming the conversion failed. Pick the semicolon separator instead.
  • Copying the CSV and pasting it into a file, then wondering why accents break: the BOM is only in the download.
  • Pasting a single JSON value such as a number. A CSV needs an array of objects, one object, or an array of values.

Pro tips

Tips for better results

  • Security

    Guard formulas when the data came from the public

    Turn on the formula guard whenever the data came from the public — a name like =HYPERLINK(…) should stay text.

  • Arrays

    Reshape arrays first if you want one row per item

    If you need one row per array item rather than JSON in a cell, reshape the array first so each item is its own object.

  • Long numbers

    Keep long IDs as strings — Excel rounds after 15 digits

    Keep long IDs as strings in your JSON; Excel shows numbers longer than 15 digits in scientific notation and loses the last digits.

JSON to Excel, honestly

This tool writes CSV — plain text with one row per line — not an Excel .xlsx workbook. Excel, Google Sheets, LibreOffice Calc and Numbers all open CSV directly, which is what most people searching for a way to convert JSON to Excel need. What CSV cannot hold is anything beyond values: there is one sheet, no formatting, no column widths and no formulas. Save it as .xlsx from Excel if you need those.

The download starts with a UTF-8 byte-order mark (BOM). Without it, Excel on Windows reads a CSV file in the local code page and accented letters turn into pairs of odd characters — Zoë becomes Zoë. Copying the text leaves the mark out, since a pasted mark is just an invisible character.

How JSON becomes rows and columns

Each object in the array becomes a row. The columns are every key that appears in any object, in the order they are first seen, so objects with different keys still line up; a missing key leaves an empty cell. Nested objects are flattened with dot paths — {"address": {"city": "Leeds"}} becomes a column called address.city. Arrays stay whole and are written as JSON inside one cell, because there is no single right way to spread a list across columns. null becomes an empty cell.

Cells are quoted as RFC 4180 describes: a value containing the separator, a double quote or a line break is wrapped in double quotes, and quotes inside it are doubled. Rows end with CRLF.

Commas, semicolons and tabs

In countries that write decimals with a comma, Excel expects semicolon-separated files and puts a comma-separated one all in column A. Choose the semicolon separator for those, or tab for a .tsv file. Going the other way, CSV → JSON detects the separator from the first line.

Formula injection

A spreadsheet treats a cell that starts with =, +, - or @ as a formula. If the JSON came from users — names, comments, form answers — turn on “Protect against spreadsheet formulas”: text cells starting with those characters get a leading apostrophe, so the spreadsheet treats them as text instead of running them. Numbers, including negative ones, are left alone.

Sources

Privacy

The JSON to CSV Converter runs entirely in your browser. What you enter and the result it produces stay on your own device — nothing is sent anywhere, because nothing needs to be.

You can confirm this rather than take our word for it: open your browser’s developer tools, watch the Network tab, and use the tool. No request carries your input. It also keeps working with the connection off.

Details are in the privacy policy.

What next?

Pretty-print it and find syntax errors before converting.

Format the JSON first

JSON to CSV Converter — questions

Can I convert JSON to Excel with this?

It converts JSON to CSV, which Excel and Google Sheets open directly with one column per key. It does not create an .xlsx file; if you need one, open the CSV in Excel and save it as a workbook.

Why do accented letters look wrong when I open a CSV in Excel?

Excel on Windows reads a CSV without a byte-order mark in the local code page. The download from this tool starts with a UTF-8 BOM, so Excel reads it as UTF-8 and Zoë stays Zoë.

How is nested JSON handled?

Nested objects become dot-path columns, such as user.address.city. Arrays are kept whole and written as JSON text in one cell. An empty object is written as {}.

Will ZIP codes and IDs with leading zeros survive CSV to JSON?

Yes. With type detection on, only numbers written the way JSON writes them become numbers, so 01234 stays the string "01234". Integers too long for a JavaScript number stay text too.

Why does Excel put everything in one column?

Your Excel expects semicolons, which is usual where commas are decimal separators. Choose the semicolon separator and download again.

Part of Developer Tools · Browse every tool