Everything runs on your machine — your file is processed right here in your browser and never uploaded to any server.
Input
JSON
Loading...
Output
CSV
Loading...

About this tool

JSON is the language of APIs and databases, but spreadsheets still run the business world. This tool turns a JSON array of objects into a clean CSV table you can open in Excel, Google Sheets, or Numbers. Each object becomes a row, each key becomes a column header, and the result appears the moment you paste your data.

Developers use it to hand API exports to non-technical colleagues, while data analysts use it to pull JSON dumps from MongoDB or REST endpoints into pivot tables. A typical example: you fetch a list of orders from an e-commerce API and need the finance team to review it in a spreadsheet by the end of the day.

How to use

  1. Paste your JSON array into the left editor, or click Load File to open a .json file stored on your computer.
  2. Watch the right editor: the CSV output is regenerated instantly on every keystroke, so you can fix syntax errors and see the result live.
  3. Check the first line of the output — the column headers are taken directly from the keys of your objects.
  4. Click Copy to put the CSV on your clipboard, or Download to save it as a .csv file ready for any spreadsheet app.
  5. Use Clear to reset both editors and start over with a new dataset.

Your JSON never leaves your computer. The conversion is performed by JavaScript running inside your own browser tab, so nothing is transmitted, stored, or logged on any server, and there is no account or upload step involved at any point.

Frequently asked questions

How are nested objects and arrays handled?

CSV is a flat format, so nested structures cannot become extra dimensions. Nested objects and arrays are flattened or stringified into a single cell, which keeps every row intact. If you need fully relational output, consider restructuring the JSON into a flat array of objects first.

What JSON shape works best for CSV?

An array of objects where every object has the same keys, such as a list of records from an API. Each object maps to one row and the shared keys become the header row. Missing keys simply produce empty cells.

Is my data uploaded to a server during conversion?

No. The entire transformation happens locally in your browser using client-side JavaScript. You can disconnect from the internet after the page loads and the converter will keep working.