Paste or upload JSON - nested objects and arrays are flattened automatically using dot notation. Pick exactly which columns to export with the column mapper, preview the result as a live table, then download as CSV.
CSV output appears here
Paste JSON or load a sample to begin
What makes it different
This one flattens nested objects and arrays intelligently, lets you pick exactly which columns matter, and shows you the result before you download.
Nested objects like address.city become real CSV columns automatically - toggle on/off to compare flat vs. nested output.
Every field across all your objects is discovered and listed - untick any column you don't need before exporting.
pick exactly what you needArrays of values join into one cell with a separator. Arrays of objects flatten into indexed columns like items.0.name.
Invalid JSON shows the exact problem in plain English - no cryptic "Unexpected token" with no context.
plain-English errorsSee your CSV rendered as a real table before downloading - verify columns and data line up correctly.
verify before exportSwitch to semicolon for European Excel locales, or tab/pipe for other systems - all from a dropdown.
4 delimitersQuick guide
Handles flat and deeply nested JSON arrays.
Paste a JSON array of objects, or drag and drop a .json file. Invalid JSON is flagged immediately with a clear explanation.
Nested fields are flattened automatically. Use the column mapper to untick anything you don't want in the final CSV.
Check the live table preview, then copy the CSV or download it - ready for Excel, Google Sheets, or a database import.
Converting a flat JSON array of simple objects to CSV is trivial - each key becomes a column, each object becomes a row. The hard part is everything else: nested objects, arrays, inconsistent fields across objects, and special characters that need escaping. This is where most free converters fall apart.
Consider this JSON:
{"name": "Rahul", "address": {"city": "Delhi", "zip": "110001"}}
CSV has no concept of nesting - every cell is a flat value. The standard approach is to flatten nested keys using dot notation, turning the address object into two columns: address.city and address.zip. This tool does this automatically and lets you toggle it off if you'd rather see nested objects as raw JSON strings in a single cell.
Arrays present a choice. A simple array of strings like "tags": ["new", "sale"] can be joined into one cell as new; sale. But an array of objects - like a list of order items - doesn't fit neatly into one cell. This tool flattens array-of-object fields into indexed columns: items.0.name, items.0.price, items.1.name, and so on, up to the maximum array length found across all objects.
Real-world JSON often has objects with different shapes - some have an email field, others don't; some have extra metadata. This tool scans every object in your array, builds a union of all fields found, and fills in empty cells for objects missing a particular field. The column mapper shows you this full union before you export, so nothing is silently dropped.
3,14 for pi) and therefore expects semicolons to separate CSV fields. If your CSV opens with all data crammed into one column in Excel, switch the delimiter to semicolon and re-export.
| JSON structure | CSV result |
|---|---|
| {"name":"Rahul"} | One column: name |
| {"address":{"city":"Delhi"}} | One column: address.city |
| {"tags":["a","b"]} | One column: tags → "a; b" |
| {"items":[{"sku":"A1"},{"sku":"B2"}]} | Columns: items.0.sku, items.1.sku |
| Objects with different keys | Union of all keys, empty cells for missing |
Convert an API response into a CSV you can open directly in Excel or Google Sheets for analysis.
Turn a MongoDB or Firebase export into a flat CSV for import into a relational database.
Convert nested analytics or log data into spreadsheet-friendly rows for pivot tables and charts.
Flatten customer records with nested contact info into the flat CSV format CRM tools expect.
Use the column mapper to see every field across hundreds of records and decide what to keep.
Convert CSV → JSON → CSV to verify your data transformations preserve everything correctly.
FAQ
Everything about flattening nested JSON and exporting clean CSV.
Ask a questionaddress.city in the JSON becomes a column named address.city in the CSV. This happens automatically and can be reviewed in the column mapper before exporting. Toggle "Flatten nested objects" off to keep nested data as a raw JSON string instead.items.0.name and items.1.name, based on the longest array found across your data.