JSON to CSV

Turn a JSON array of objects into clean, spreadsheet-ready CSV.

Quick answer

Convert a JSON array of objects into clean CSV, flattening nested fields and handling commas and quotes correctly. Download the file, all in your browser.

Paste a JSON array of objects and it converts as you type.

Features

  • Converts a JSON array of objects to CSV
  • Flattens nested objects into dot-notation columns
  • Escapes commas, quotes and line breaks correctly
  • Comma, semicolon or tab delimiter
  • Copy or download the file, nothing is uploaded

How to use it

  1. Paste a JSON array of objects into the top box.
  2. Choose your delimiter and how to handle nested objects.
  3. The CSV appears below, ready to copy.
  4. Download it and open in Excel, Sheets or Numbers.

Why the structure changes

JSON and CSV describe data in fundamentally different shapes, and understanding that is the key to a clean conversion. JSON is a tree: objects can nest inside objects, and arrays can hold anything. CSV is a flat grid: rows and columns, nothing deeper. Converting from one to the other therefore means projecting a tree onto a table, and the natural unit for a row is one object in a top-level array.

That is why this tool expects an array of objects. Each object becomes a row, and every key that appears anywhere in the data becomes a column, so records with different fields still line up. When a value is itself an object, flattening turns it into dot-notation columns, so an address object with a city field becomes an address.city column. Arrays and awkward values can instead be kept as JSON text in a single cell if you prefer to preserve them intact.

The other half of a correct converter is escaping. A CSV field that contains the delimiter, a quote or a line break must be wrapped in double quotes, and any quotes inside it doubled, or the file will break when a spreadsheet reads it. Getting this right by hand is fiddly and easy to botch, which is exactly why doing it in a tool saves you from silently corrupted exports.

Frequently asked questions

Yes, with no limits, no account and no sign-up.
A top-level array of objects, where each object becomes a row. If your JSON is a single object, wrap it in square brackets to make it an array of one.
By default they are flattened into dot-notation columns, so a nested address.city becomes its own column. You can instead keep nested values as JSON text in one cell.
No. The conversion runs entirely in your browser, so your JSON never leaves your device.

Related tools

Further reading

📖 How to Convert JSON to CSV (and Why the Shape Changes)

Read the full guide on the 123MiniApps blog.

Pick a theme

Ten hand-tuned palettes.