JSON to CSV Converter: Convert Nested JSON to CSV Free
Paste JSON or open a .json file and get a clean CSV table, with nested objects flattened into columns and a live preview. Download CSV or Excel; everything runs in your browser with no upload.
100% private: files are processed by your browser. Nothing is uploaded to GrowthPi or anyone else.
How to use the JSON to CSV Converter
- 1
Paste your JSON into the left box, or open a .json or .jsonl file.
- 2
Choose how nested objects and arrays should become columns.
- 3
Check the preview table, then copy the CSV or download it as CSV or Excel.
What is JSON, and why turn it into CSV?
JSON (JavaScript Object Notation) is the format APIs, web apps and databases use to exchange data. It is great for programs because it can nest objects inside objects, but it is hard for people to read and impossible to sort or total in a spreadsheet.
CSV is a simple table: a header row and one line per record. Converting JSON to CSV lets you open API responses, app exports and logs in Excel or Google Sheets, share them with non-developers, or import them into tools that only accept spreadsheets. Typical examples: an export from Shopify, Stripe, Airtable or Firebase, a response from a REST API, analytics events, or a settings backup.
How the converter turns JSON into rows and columns
- It finds your records. If the JSON is an array, each item becomes a row. If it is an object that wraps a list, such as
{"data": [...]}or{"results": {"items": [...]}}, the tool finds the largest list of objects inside it and tells you which path it used. A single object becomes a single row. - It flattens nested objects into dot-notation columns.
{"address": {"city": "Austin"}}becomes a column namedaddress.city. - It collects every key. Records do not need the same fields. The header contains every key seen in any record, in the order first seen, and missing values are left empty.
- It writes valid CSV. Values with commas, quotes or line breaks are quoted correctly, so the file opens cleanly in Excel.
JSON Lines files (.jsonl or .ndjson, one JSON object per line, common in logs and data pipelines) are detected automatically.
Nested data: which option to choose
| Your JSON | "Flatten" + "Join lists" (default) | "One column per item" | "Keep as JSON text" |
|---|---|---|---|
"address": {"city": "Austin", "state": "TX"} | address.city, address.state | same | one address cell with {"city":"Austin","state":"TX"} |
"tags": ["vip", "newsletter"] | tags = vip; newsletter | tags.0, tags.1 | ["vip","newsletter"] |
"orders": [{"id": 7, "total": 20}] | orders.0.id, orders.0.total | same | one cell with the JSON |
Use Join lists for readable spreadsheets, One column per item when each position means something (such as coordinates), and Keep as JSON text when you plan to convert the CSV back to JSON later or the nesting is very deep.
A worked example
Say an online store's API returns this:
{
"orders": [
{ "id": 1001, "total": 49.90, "customer": { "name": "Ava", "state": "TX" }, "items": ["mug", "tote"] },
{ "id": 1002, "total": 15.00, "customer": { "name": "Liam", "state": "CO" }, "items": ["sticker"], "coupon": "FALL10" }
]
}
The converter finds the list under orders, flattens each order, and produces:
id,total,customer.name,customer.state,items,coupon
1001,49.9,Ava,TX,mug; tote,
1002,15,Liam,CO,sticker,FALL10
The coupon column exists because one record had it; the other row simply leaves it empty. Numbers are written the way JSON stores them, so 49.90 becomes 49.9. Format them as currency in Excel afterwards if you need two decimals.
Tips for clean results
- Invalid JSON? The error message shows the line and column of the problem. The usual causes are a trailing comma, single quotes instead of double quotes, or a missing bracket at the end of a copied response.
- Opening in Excel: use Download Excel to get a real .xlsx with numbers as numbers and leading zeros kept, or tick Add BOM before downloading CSV so Excel shows accented letters correctly.
- European Excel: choose the semicolon delimiter.
- Large files: files up to about 50 MB work in a desktop browser. For bigger exports, split them first or request a smaller date range from the API.
CSV or Excel: which download should I use?
Choose Download CSV when the file is going into another program: an importer, a database, a script or a tool that asks for CSV. It is plain text, small, and keeps every value exactly as written. Choose Download Excel when a person will open it: the .xlsx has a bold, frozen header row with filters, sensible column widths, numbers stored as real numbers so totals and charts work immediately, and values such as zip codes or long IDs kept as text so Excel does not mangle them. You can always do both from the same conversion.
Going the other way and related tools
To turn a spreadsheet back into JSON for an app or API, use CSV to JSON. To give a CSV proper formatting, use CSV to Excel, and to export a sheet from a workbook, use Excel to CSV. If you are automating exports like these, our guide on how to automate repetitive tasks shows where to start, and how to use ChatGPT for work covers asking AI to explain a confusing JSON structure, without pasting private data into it.
Private: your JSON never leaves your browser
API responses often contain customer emails, tokens and internal IDs. This converter parses and flattens the JSON with JavaScript on your own device. Nothing is uploaded to GrowthPi or any server, so it is safe for confidential data and still works if you go offline after the page loads.
Last updated November 6, 2026.
JSON to CSV Converter FAQ
How do I convert JSON to CSV?
Paste the JSON into the box above or open a .json file. The CSV appears instantly with a preview table; copy it or download it as CSV or Excel.
How do I convert nested JSON to CSV?
Nested objects are flattened automatically into columns like address.city. Lists of values are joined with semicolons, or you can choose one column per item or keep them as JSON text.
How do I open a JSON file in Excel?
Convert it here and click Download Excel. You get an .xlsx file with a header row, numbers as numbers and leading zeros kept, ready to open in Excel or Google Sheets.
Can I convert JSON Lines (JSONL) to CSV?
Yes. Files with one JSON object per line (.jsonl or .ndjson) are detected automatically, and each line becomes a row.
What if my records have different fields?
The header includes every key found in any record. Records without a field simply get an empty cell in that column.
Is my JSON uploaded anywhere?
No. The conversion runs entirely in your browser, so the data never leaves your device.
