Convert

Convert complex JSON arrays with nested objects and child lists into tidy CSV spreadsheets

Export hierarchical JSON arrays into clean CSV tables with flattened dot-notated columns.

🛡️ Your rows never leave your browser.
Why Onfyt: Scans all array records to union every possible nested key, so optional properties never get omitted from the CSV header.

Interactive Sample Data

idnameaddress.cityaddress.ziproles
1Grace KeruboNairobi00100admin; editor
2Peter NjorogeMombasa80100viewer

How this tool works

Converting a flat JSON array to CSV is straightforward, but real-world API responses are almost never flat. Webhooks from Stripe, Shopify, GitHub, and Salesforce export deeply structured payloads where objects contain nested sub-objects (e.g. 'shipping_address') and child arrays (e.g. 'line_items' or 'tags'). Standard online JSON-to-CSV converters break down when handling nested payloads. They either discard nested fields entirely or serialize the entire child object as an unparsed string like '[object Object]', rendering the CSV useless for spreadsheet analysis. DataFix performs comprehensive structural unnesting. It traverses all nested objects and creates descriptive dot-notated column headers (e.g. 'customer.shipping.city'). When child arrays contain primitive values (such as tag lists), it packs them into delimited cell strings. Crucially, the engine scans the entire array to form a union of all possible keys, ensuring that attributes appearing in only a few records still receive their rightful column. Flattening nested JSON arrays into tabular CSV format using dot-notation column headers prepares complex document stores for relational SQL analysis.

Things that usually go wrong

  • Arrays inside objects (tags: ['a','b']) are joined as 'a,b' (a single string) in the CSV column.
  • Very deep nesting (6+ levels) produces very long column names.

Edge cases we tested

🧪 Records with mismatched keys across objects

Headers unioned across all records; missing values output as empty cells.

🧪 Values containing commas, newlines, or quotes

Wrapped in RFC 4180 double quotes to prevent delimiter breakage.

🧪 Deeply nested arrays of objects

Configurable between JSON-string serialization or indexed columns.

Frequently Asked Questions

How are array-valued fields handled?

Array values are joined with a pipe (|) by default. Change the separator in the options.

Can I control which nested levels are flattened?

Yes — set a maximum nesting depth. Objects deeper than the limit are serialised as raw JSON strings.

How are arrays inside objects handled?

Array values are joined with a pipe (|) by default. Enable 'Expand arrays' to create separate columns for each array index: tags_0, tags_1, tags_2.

What is the maximum nesting depth supported?

Up to 10 levels of nesting. Objects nested deeper than 10 levels are serialised as JSON strings in a single column.

Related tools

Convert

CSV to JSON

Transform tabular CSV spreadsheets into structured JSON arrays of objects in your browser.

Open Tool →
Convert

JSON to CSV

Transform complex JSON arrays and nested API responses into clean, spreadsheet-ready CSV tables.

Open Tool →
Convert

CSV to TSV

Convert CSV data into tab-delimited values (TSV) for seamless copy-pasting directly into Excel, Sheets, and bioinformatics tools.

Open Tool →