zerouploads

JSON to CSV Converter

Turn JSON into a spreadsheet. Nested objects become dotted columns, and you decide what happens to a list.

  • Preview
  • Unlimited
  • No signup
  • Private
  • Works offline

Convert JSON to CSV

6 rows · 9 columns · array of objects · 1 kB
Output format

Comma is the usual choice. Tab downloads as .tsv, which Excel opens without asking anything.

A cell holds one value, so a list has to become one. Join writes them in a single cell, spread gives each one a column.

Spread turns an address object into address.city and address.country. Keep puts the whole object in one cell as JSON.

CSV writing options
6 rows

array of objects

9 COLUMNS
The CSV as a grid, 6 rows of 9 columns
Rowidnameplanseatsaddress.cityaddress.countrytagschurnedAtregion
11001Reed, Anateam12ZurichCHbilling; active——
21002Okonkwo Ltdsolo1LagosNGtrial2026-07-14—
31003Vance "Vee" Coleteam8LeedsGB——
41004Ito Manufacturingscale140OsakaJPenterprise; invoice; sso—apac
51005Bright & Sonssolo2CorkIEbilling——
61006Delacroix SARLteam9LyonFRactive—eu-west

delimiter , · LF · with header

6 rows · 9 columns · array of objects · 1 kB in / 386 B out

How it works

  1. 01

    Paste the JSON

    Or open a .json or .jsonl file. An array of objects is the usual shape, and five others are read too.

  2. 02

    Choose the columns

    Decide what happens to nested objects and to lists. The CSV updates as you change it.

  3. 03

    Save it

    Copy the CSV, or download it. Turn on Excel UTF-8 mark if you are opening it in Excel.

JSON nests, and a spreadsheet does not

JSON can hold an object inside an object, but a CSV cell holds one value. Something has to give, so the tool asks you what.

A nested object becomes one column per key, named with a dot. An address holding a city and a country turns into address.city and address.country, so the spreadsheet keeps both and nothing is buried.

A list is harder, because there is no right answer. Join puts the whole list in one cell, split by a semicolon, which reads well and sorts badly. One column each gives you tags.0 and tags.1, which sorts well and grows a column every time a record has one more tag. Keep as JSON leaves the brackets in the cell for a program to read later.

Shapes read
Array of objects, array of arrays, keyed object, single object, list of values, and JSON Lines.
Nested keys
Flattened to dotted columns, or left in one cell as JSON. Your choice, per document.
Delimiters
Comma, tab, semicolon or pipe. Tab downloads as .tsv, the rest as .csv.
Size
Small documents convert as you type. Larger ones go to a worker when you press Convert.

Which shapes are read, and where the columns come from

An array of objects is the normal export and the one to aim for. A keyed object, an array of arrays, a single object and a bare list of values all work too. So does JSON Lines, with one document on each line, which many log and export tools write.

The columns are every key that any record has, in the order they were first seen. A record missing a key gets an empty cell, not a shifted row, so a ragged export still lines up.

A cell is wrapped in quotes only when it holds the delimiter, a quote mark, a line break or a space at either end. Turn on Quote every cell if the program at the other end is fussy.

Frequently asked questions

Is my JSON uploaded?
No. Your browser reads it and writes the CSV in this tab. Nothing is sent anywhere, so an export of real records stays with you.
What happens to nested objects?
Each key becomes its own column, named with a dot. An address object turns into address.city and address.country. Pick Keep the object as JSON to keep the whole object in one cell.
What happens to a list inside a record?
Whatever you pick. Join writes it in one cell split by a semicolon. One column each gives you tags.0 and tags.1. Keep as JSON leaves the brackets in the cell.
My records do not all have the same keys. Does it still work?
Yes. The header holds every key that any record has, and a record missing one gets an empty cell. No row is shifted and no key is dropped.
Why do my accents look wrong in Excel?
Excel reads a plain UTF-8 file as if it were Latin-1. Turn on Excel UTF-8 mark and download again. The mark goes in the file only, never in what you copy.
Does it change cells that start with an equals sign?
No. A cell is written exactly as it arrived. Some tools add a quote mark in front so a spreadsheet cannot read it as a formula. That changes your data, so this one leaves it alone.
Can it read JSON Lines?
Yes. That is one document per line, which many log and export tools write. It is tried only after the whole file fails to parse, so a normal document is never mistaken for it.
How big a file can it take?
There is no fixed cap. Documents under about 200,000 characters convert as you type. Bigger ones convert off the main thread when you press Convert, so the page stays usable.
Browse all developer tools