TanodTools

JSON to CSV converter

Paste a JSON array or open a .json file and get CSV you can open in Excel, Google Sheets or Numbers.

Runs entirely in your browser

Paste JSON to begin.

Input up to about 10 MB, pasted or from a .json file. The result updates as you type.

How to convert JSON to CSV

  1. Paste your JSON into the box, or open a .json file. An array of objects gives one row per object.
  2. Choose the delimiter and how nested objects are written. Turn on the Excel option if the file will be opened in Excel.
  3. Copy the CSV or download it as a .csv file.

Turning JSON into a spreadsheet

APIs and exports often hand you JSON, while the people who need the data want a spreadsheet. CSV bridges the two: each object in the array becomes a row and each key becomes a column. Because objects in real data rarely all have the same keys, the tool collects every key it sees, in the order it first sees them, and leaves a cell empty where an object has no value for that column.

Spreadsheets are flat, so nested data has to be squeezed into columns somehow. Flattening turns user.name and user.email into separate columns, which suits most reports. Keeping nested objects as JSON text keeps the column count down and lets you rebuild the original structure later.

The CSV follows the usual rules (RFC 4180): values are quoted only when needed and quotes inside a value are doubled. Numbers keep the exact digits from your JSON rather than being rounded the way JavaScript numbers would be.

Tips

Questions

Is my JSON uploaded?

No. It is parsed and converted in your browser, and nothing is sent anywhere or stored.

What JSON shapes work?

An array of objects (one row per object, one column per key), an array of arrays (each inner array is a row), an array of plain values (one column), or a single object (one row). Columns appear in the order keys are first seen, so an object that has a key the others lack adds a column, and rows without it get an empty cell.

How are nested objects and arrays handled?

With Flatten to dot paths, a nested object such as {"address": {"city": "Lyon"}} becomes a column named address.city. With Keep as JSON text, the whole nested object goes into one cell as JSON. Arrays are always written as JSON text in a single cell, because there is no single right way to spread a list across columns.

Why do accents look wrong when I open the file in Excel?

Excel on Windows often assumes an old regional encoding unless the file starts with a byte-order mark. Turn on Add a byte-order mark for Excel before downloading and Excel will read the file as UTF-8. Google Sheets and Numbers read UTF-8 either way. If your Excel expects semicolons, choose the semicolon delimiter too.

When are values put in quotes?

Only when they need it: a value that contains the delimiter, a double quote, a line break, or starts or ends with a space is wrapped in double quotes, and any quote inside it is doubled. Numbers are written exactly as they appear in the JSON, so long IDs are not rounded. null becomes an empty cell.

Why does it say my JSON is invalid?

The message gives the line and column where reading stopped. The usual causes are a trailing comma, single quotes instead of double quotes, or a missing bracket. The JSON formatter shows the exact spot with a caret.