Want a Custom tool for Yourself?

Need a Custom Tool? We build custom tools that can save hours per employee per day.

JSON to CSV

Convert JSON to CSV for spreadsheets. Paste JSON arrays or objects, generate CSV output instantly, then copy it for Excel, sheets, and exports.

JSON to CSV



Last updated: June 4, 2026

Created by: Eon Tools Dev Team

Reviewed by: Sugam Baskota



What this does

So you have a chunk of JSON, maybe an export or a list of records from an API, and you need it in a spreadsheet. This turns it into CSV. Paste your JSON, press Convert, and you get comma separated rows you can drop straight into Excel or Google Sheets.

How to use it

  1. Paste a JSON array of records into the box.
  2. Press Convert.
  3. Copy the CSV output, then paste or save it as a .csv file for your spreadsheet.

How it works

The tool reads your JSON and then hands it to Papa Parse, a CSV library, which turns your list of records into rows. It takes the keys from your objects and uses them as the column headers, then writes one row per record underneath. It also handles the fiddly parts of CSV for you, like wrapping a value in quotes when it contains a comma. All of it runs in your browser, so your records are not sent to a server.

The shape your JSON needs

There is one rule that matters here, and it trips people up. A spreadsheet is a grid of rows and columns, so the JSON has to be shaped like a list. That means an array of objects, essentially a list of { } records, or a two dimensional array. If you paste a single object on its own, or JSON that is nested in a complicated way, the tool cannot lay it out as a table and will say so.

The cleanest input is a flat array of objects that all share the same keys. Each object becomes a row, and each key becomes a column. If some records are missing a key, those cells simply come out empty. Values that are themselves objects or arrays do not split neatly into columns, so if your data is deeply nested, flatten it first.

A quick example

Here is the kind of JSON that converts cleanly, a short list of records:

[
    {"name": "Asha", "role": "admin", "active": true},
    {"name": "Ben", "role": "editor", "active": false}
]

And the CSV it produces:

name,role,active
Asha,admin,true
Ben,editor,false

The keys became the header row, and each record became a line beneath it.

Questions people ask

Why do I get an error about needing an array of objects?

Because a table is made of rows, and a single object or a non-list cannot become rows. Wrap your records in an array, or restructure the data into a list, and it will convert.

Will the result open in Excel?

Yes. Save the output in a file with a .csv extension, or paste it directly, and Excel, Google Sheets, or Numbers will read it as a table.

What happens to nested objects?

CSV is flat by nature, so nested objects and arrays do not expand into tidy columns. For deeply nested data, flatten the fields you need before converting.

Is my data uploaded anywhere?

No. The conversion runs in your browser, so the JSON you paste stays on your machine.

References

  1. Internet Engineering Task Force. RFC 4180: Common Format and MIME Type for Comma-Separated Values (CSV) Files. https://www.rfc-editor.org/rfc/rfc4180
  2. Papa Parse. Powerful CSV parser for JavaScript. https://www.papaparse.com/


Sugam Baskota

Sugam Baskota is a senior software engineer and Computer Science graduate from UT Arlington, with interests in user scripts, browser extensions, developer tooling, and productivity systems. He spends time building practical utilities and extensions in the kinds of workflows Eon is designed to simplify. At Eon Tools, he reviews useful, password, and developer tools.