JSON to CSV converter
Paste a JSON array of objects. Every key becomes a column and each object becomes a row.
Free · no signup Runs in your browser
How do I convert JSON to CSV?
Paste a JSON array of objects into the box. The tool collects every key it finds, in order of first appearance, as the CSV columns, and writes each object as a row, quoting any value that contains the delimiter, a quote or a line break. Nested objects and lists are written as JSON text in their cell. Choose a comma, semicolon, tab or pipe, and add the Excel marker if the file has accented letters.
Getting a spreadsheet-ready file
Most JSON from an API or an app is an array of similar objects, which maps naturally onto a table: the keys are the columns and each object is a row. Objects do not all need the same keys; the columns are the union of every key found, and a row that lacks a key gets an empty cell. A top-level object is treated as a single row, and an array of arrays is written line by line as it is.
Two details decide whether Excel opens the file correctly. The first is the delimiter: Excel set to French or many European languages expects semicolons, because the comma is the decimal mark there, so choose semicolon for those files. The second is the encoding: Excel assumes an old encoding for a plain CSV and shows accents like é as odd characters unless the file starts with a byte-order mark. Tick the Excel option to add it. Line breaks are written as CRLF, which is the form RFC 4180 specifies.
It runs in your browser. Your data is never uploaded, and there is no sign-up.
Nested data
A table is flat, so nested data has to be dealt with. Here a nested object or list is written as JSON text inside its cell, which keeps the information and lets you split it later. If you need each nested key as its own column, flatten the JSON first. To go the other way, use the CSV to JSON converter; to check the JSON first, use the JSON formatter.
When to use it
- Opening API or database output in Excel or Google Sheets
- Sharing JSON data with someone who works in spreadsheets
- Preparing a list for an import
- Checking what an export really contains
Mistakes it helps you avoid
- Writing values with commas or quotes without quoting them.
- Missing columns because only the first object's keys were used.
- Opening a UTF-8 file in Excel without the marker and seeing garbled accents.
- Using a comma in a locale where Excel expects semicolons.
The formula
How the answer is worked out.
1. Parse the JSON; a single object becomes a one-item list.2. Columns = every key found, in order of first appearance.3. For each object write one row; a missing key gives an empty cell; nested values become JSON text.4. Quote a value if it contains the delimiter, a quote or a line break, doubling any quotes; join rows with CRLF.
The JSON reader follows RFC 8259 and the CSV writer follows RFC 4180. Numbers are written as they appear in the JSON. Very large integers (beyond 15 digits) can lose precision in JSON itself, before this tool sees them.
Example: two objects with different keys
The JSON is [{"name":"Ana","age":34},{"name":"Ben","city":"Halifax"}].
- Columnsname, age, city
- RowsAna,34, · Ben,,Halifax
A three-column CSV where missing values are empty
Choose semicolon for Excel in French settings.
Terms on this page
- Byte-order mark
- An invisible character at the start of a file that tells a program the text is UTF-8.
Common questions
How do I open JSON in Excel?
Convert it to CSV here, then open or import the CSV. Tick the Excel option for accents.
What happens to nested objects?
They are written as JSON text in one cell.
Why are my accents garbled in Excel?
Add the byte-order mark with the Excel option, or import the file as UTF-8.
Can the items have different keys?
Yes. The columns are the union of all keys.
Is my data uploaded?
No.
Is anything I enter sent to a server?
No. The calculation happens in your browser and nothing you type leaves your device.
What to work out next
Where these numbers come from
- IETF — RFC 4180: Common Format and MIME Type for CSV Files How quoted fields, doubled quotes and line breaks inside quotes work in CSV.
- IETF — RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format The JSON syntax the output follows.
Last verified 2026-10-25 The method on this page is checked against the sources above at least once a year. Spotted something out of date? Tell us and we will fix it.
Related tools
CSV to JSON
Paste CSV or load a table copied from a spreadsheet and get clean JSON, with automatic delimiter detection, headers and number conversion.
Open toolJSON formatter
Paste JSON to check it is valid, then pretty-print, minify or sort its keys, and copy the result.
Open toolBase64
Encode text to Base64 or decode Base64 back to text, with UTF-8 and the URL-safe alphabet supported.
Open toolSort lines
Sort a list of lines A to Z, Z to A, in number order, by length, reversed or shuffled, and copy the result.
Open toolColour converter
Convert a colour between HEX, RGB and HSL, with a colour picker, and copy the CSS value you need.
Open toolPassword generator
Create strong random passwords of any length with your choice of characters. Made in your browser; nothing is sent or saved.
Open tool🧰 Developer and web tools
Small developer and web jobs done in your browser. What you paste or choose is never sent anywhere.
See all 24 tools in this section