JSON → CSV / Excel Converter
Drag & drop JSON and export it to CSV or Excel — with automatic flattening of nested objects. Runs entirely in your browser, so your data never leaves your device.
Input JSON
Preview
What this tool does
JSON is how APIs return data; CSV and Excel are how people actually work with it. This converter bridges the two — drop in an array of JSON objects and get back a spreadsheet where each object is a row and each key is a column.
It handles the two things that usually break naive converters: nested objects and arrays, which get flattened into readable columns, and values like 00123 or 160-0022, which stay as text instead of being silently converted to numbers.
How to use it
- 1Paste your JSON into the input, or drag and drop a .json file onto it.
- 2Leave “Flatten nested objects” on if your data has nested fields — see the section below for what that does.
- 3Check the preview table to confirm the columns look right.
- 4Click Download CSV for a plain CSV file, or Download Excel for a real .xlsx workbook.
Your JSON should be an array of objects — that is what maps cleanly onto rows. A single object works too and produces a one-row file.
Example: JSON in, CSV out
[
{ "id": 1, "name": "Ayesha Rahman", "email": "ayesha@example.com", "plan": "pro" },
{ "id": 2, "name": "Kenji Sato", "email": "kenji@example.com", "plan": "free" }
]id,name,email,plan
1,Ayesha Rahman,ayesha@example.com,pro
2,Kenji Sato,kenji@example.com,freeKeys become the header row in the order they first appear. If some objects are missing a key, that cell is simply left empty rather than shifting the row.
How nested objects and arrays are flattened
Real API responses are rarely flat. CSV has no concept of nesting, so nested values are given dotted column names and arrays are given indexed ones.
[
{
"id": 1,
"name": "Ayesha Rahman",
"address": { "city": "Dhaka", "zip": "1207" },
"tags": ["pro", "beta"]
}
]id,name,address.city,address.zip,tags.0,tags.1
1,Ayesha Rahman,Dhaka,1207,pro,betaTurn flattening off and nested values are written as raw JSON inside a single cell instead — useful when you want to keep a structure intact and re-parse it later.
Opening the result in Excel
If Excel is where the data is going, use Download Excel rather than Download CSV. It produces a genuine .xlsx workbook that opens directly in Excel, Numbers and Google Sheets with no import dialog and no format warning.
Why not just open the CSV?
Because Excel reformats CSV values as it reads them, and the damage is quiet. Leading zeros are stripped, so a zip code 01907 becomes 1907. Values like 160-0022 or 3-11 are parsed as dates. Long numeric IDs turn into scientific notation. None of it is flagged.
The Excel export writes every cell as an inline string, so IDs, postcodes and product codes arrive exactly as they were in your JSON.
CSV or Excel — which should you pick?
Choose CSV when the file is going into another program: a database import, a WooCommerce or Shopify product upload, a script, or any tool that asks for “comma-separated values”. It is plain text and universally readable.
Choose Excel when a person is going to open it. You get correct types, no import dialog, and no risk of Excel reinterpreting your data on the way in.
Going the other direction, or need to tidy the data first? Use the CSV to JSON converter or the Bulk CSV Cleaner.
Frequently asked questions
Is the JSON to CSV converter free?
Yes — completely free, with no account, no row limits and no watermarks.
Is my data uploaded to a server?
No. Everything runs locally in your browser, so your JSON never leaves your device.
Can it convert JSON to Excel?
Yes. You can export to CSV or a real .xlsx Excel file that opens in Excel, Numbers or Google Sheets without any format warnings.
Does it handle nested JSON objects and arrays?
Yes. Turn on “Flatten nested objects” to convert nested fields into dotted columns like address.city, and arrays into indexed columns like tags.0, tags.1.
Does it work offline?
Once the page has loaded, the conversion runs entirely on your device and works without an internet connection.