JSON to CSV Converter
Convert JSON to CSV online: arrays of objects become rows, nested keys flatten into columns, with your choice of delimiter and quoting. Runs in your browser.
How to use JSON to CSV
- 1Paste a JSON array of objects or open a .json file.
- 2Choose the delimiter and whether to flatten nested objects and include a header row.
- 3Copy the CSV or download it as a .csv file.
What makes it better
- Columns are the union of all keys, in the order they first appear, so uneven objects still line up
- Nested objects flatten with a separator you choose; arrays become indexed columns or JSON text
- Accepts an array of objects, an array of arrays, a single object or plain values
- Comma, semicolon, tab or pipe; LF or CRLF; optional quote-every-cell
- Shows the row and column count and explains how nested data was handled
About JSON to CSV
JSON to CSV turns an array of objects into a table with one row per object and one column for every key that appears anywhere in the array. Nested objects can be flattened into columns such as address.city, arrays can be spread into tags.0 and tags.1 or kept as JSON text, and the result opens directly in Excel or Google Sheets.
Common uses
- Open an API response in Excel or Google Sheets to filter and pivot it.
- Export a JSON data dump to CSV for a colleague who does not use code.
- Prepare records for a bulk-import form that only accepts CSV.
- Compare nested records side by side by flattening them into columns.
Example
Input
[
{
"id": 1,
"name": "Asha",
"address": {
"city": "Chennai",
"pin": "600001"
},
"tags": [
"new",
"vip"
]
},
{
"id": 2,
"name": "Ravi, Jr",
"address": {
"city": "Pune",
"pin": "411001"
},
"tags": [
"new"
]
}
]Result
id,name,address.city,address.pin,tags.0,tags.1 1,Asha,Chennai,600001,new,vip 2,"Ravi, Jr",Pune,411001,new,
Good to know
- Opening a CSV in Excel can treat any cell that starts with =, +, - or @ as a formula. Nothing is evaluated here, but if the data comes from untrusted sources turn on Prefix formula-looking cells under Advanced to add a leading apostrophe.
- Wide, deeply nested JSON produces many columns. Rows that lack a key get an empty cell, and null also becomes an empty cell because CSV has no null.
- Numbers are written exactly as JSON.parse reads them, so integers above 2^53 may already have lost precision before conversion.
JSON to CSV FAQ
How do I convert nested JSON to CSV?
Keep Flatten nested objects on. Each nested key becomes a column named by its path, so address.city and address.pin come out as two columns, and the separator can be changed from the dot under Advanced.
What happens to arrays inside my objects?
By default each array item gets its own column, such as tags.0 and tags.1. Pick JSON text under Advanced to keep the whole array in one cell, which is easier when arrays differ a lot in length.
Why are some cells empty?
The header is the union of every key in the array. An object that lacks a key, or has it set to null, gets an empty cell in that column.
Which JSON shapes does it accept?
An array of objects is the usual case. An array of arrays becomes numbered columns, an array of plain values becomes one value column, and a single object becomes one row.
Can I get a semicolon or tab separated file instead?
Yes. Choose Semicolon, Tab or Pipe from the Delimiter menu. Cells that contain the chosen delimiter, quotes or line breaks are quoted automatically.