Skip to content
SPCXTools

JSON to CSV Converter

Convert JSON arrays into spreadsheet-ready CSV, with nested objects flattened into columns.

Runs locally — files never leave your device

Loading tool…

How to use JSON to CSV Converter

  1. 1Paste JSON into the left box, or press Open file to load a .json file.
  2. 2Choose the delimiter — comma for most tools, semicolon for Excel in many European locales, or tab for TSV.
  3. 3Decide whether to include a header row and flatten nested objects into dot-separated columns.
  4. 4Copy the CSV or download it. Tick Excel-friendly UTF-8 if accented characters look wrong in Excel.

Convert JSON to CSV for spreadsheets

APIs, databases and logging tools speak JSON, but colleagues, clients and analysts often want a spreadsheet. This JSON to CSV converter turns a JSON array into a CSV file you can open in Excel, Google Sheets, Numbers or any data tool. Nested objects are flattened into their own columns, missing fields are handled gracefully and special characters are escaped correctly. The conversion runs in your browser, so your data stays private.

Features

  • Arrays of objects, arrays of arrays or a single object as input.
  • Flatten nested objects into columns such as address.city and address.country.
  • All keys become columns — objects with different fields are merged into one consistent table.
  • Delimiter choice: comma, semicolon, tab (TSV) or pipe.
  • Correct escaping of commas, quotes and line breaks according to the CSV standard.
  • Excel-friendly UTF-8 option that adds a BOM so accents and non-Latin scripts display properly.
  • Copy or download, with the original file name kept when you open a file.

Example

This JSON:

[
  { "id": 1, "name": "Ada", "address": { "city": "London" }, "tags": ["math"] },
  { "id": 2, "name": "Alan", "address": { "city": "Manchester" } }
]

becomes this CSV:

id,name,address.city,tags
1,Ada,London,"[""math""]"
2,Alan,Manchester,

The tags array is stored as JSON text in one cell, with its quotes doubled as CSV requires. The second row has no tags, so the cell is empty.

Tips

  • Extract the array first. Many API responses wrap the list in an object, such as {"data": [...], "page": 1}. Converting the whole object gives a single row; copy just the array for one row per item.
  • Choose semicolons for Excel in Europe. If Excel puts everything into one column, your system uses a comma as the decimal separator. Use the semicolon delimiter or import the file with Excel's Data › From Text/CSV.
  • Validate first. If the JSON has a syntax error, the message shows where. The JSON Formatter can help you find and fix it.

Related tools

To convert in the other direction, use the CSV to JSON Converter. To compare two exports line by line, try the Diff Checker.

Frequently asked questions

What JSON structures can be converted?
The best input is an array of objects, such as an API response: [{"id": 1, "name": "Ada"}, …]. Each object becomes a row and each key a column. An array of arrays is converted row by row, and a single object becomes a one-row table.
How are nested objects and arrays handled?
With Flatten nested objects ticked, nested objects become separate columns with dot-separated names, so {"address": {"city": "London"}} becomes a column called address.city. Arrays are written into a single cell as JSON text (["a","b"]), because they can have any length. Without flattening, nested objects are also written as JSON text.
What happens if objects have different keys?
The converter collects every key that appears in any object and uses them all as columns, in the order they first appear. Rows that don't have a key get an empty cell.
Why do accented or non-Latin characters look wrong in Excel?
Some versions of Excel assume an old regional encoding when opening CSV files. Tick Excel-friendly UTF-8 to add a byte order mark (BOM) to the downloaded file, which tells Excel the file is UTF-8. Google Sheets and Numbers handle UTF-8 without it.
Is there a size limit?
There's no fixed limit. Files of several megabytes convert in a moment. Very large files are limited only by your device's memory, since everything is processed locally in the browser.
Is my JSON sent to a server?
No. Parsing and conversion happen on your device, so API responses, logs and exports stay private.