Convert JSON to CSV (advanced)

Built for nested objects, mixed arrays, and API payloads that simple JSON to CSV converters usually fail to handle cleanly.

Paste JSON or upload a file
0 B
Paste JSON0 chars
Output
Waiting for input
Upload JSON or paste it on the left. The preview appears here with the detected row source and flattening rules applied.
Preview up to 100 rows. Download to get full CSV.
Rows
0
Columns
0
Errors
0

Paste your JSON. Get a clean CSV in seconds.

We designed this tool for JSON formats breaking standard converters: nested objects, mixed arrays, and large payloads. Your data stays on your machine.

Convert nested JSON, API responses, and complex exports to CSV

Most tools fail unless your JSON starts with a flat array. But real-world data arrives messy. API responses, webhook payloads, CRM exports, and scraped files contain nested objects, metadata, and mixed structures. We built this tool to handle them.

Choose your row nodes, select objects to flatten, and set array rules. Then preview and download your CSV.

Example: Convert a nested API response to CSV

Often, the JSON root operates as an object and your rows hide in a nested array like `results` or `data`. While simple converters fail, ours detects the array, flattens the structure, and exports a clean CSV.

Nested JSON Input
{
  "nextPage": "abc123",
  "results": [
    {
      "id": "c_001",
      "company": {
        "name": "Datablist",
        "website": "https://www.datablist.com"
      },
      "metrics": {
        "employees": 12,
        "revenue": {
          "amount": 500000,
          "currency": "EUR"
        }
      }
    }
  ]
}
CSV Output
id,name,website,employees,amount,currency
c_001,Datablist,https://www.datablist.com,12,500000,EUR

Example: Extract a nested contacts array

Some payloads contain multiple arrays. You might want the parent records or a deeper array like contacts. Use the row node selector to target the exact array you need and export those specific rows.

JSON With Multiple Arrays
{
  "results": [
    {
      "company": {
        "name": "Datablist"
      },
      "contacts": [
        {
          "firstName": "John",
          "lastName": "Doe",
          "email": "john.doe@datablist.com",
          "role": "Founder"
        },
        {
          "firstName": "Alice",
          "lastName": "Martin",
          "email": "alice@datablist.com",
          "role": "Marketing"
        }
      ]
    }
  ]
}
CSV Output For Contacts
firstName,lastName,email,role
John,Doe,john.doe@datablist.com,Founder
Alice,Martin,alice@datablist.com,Marketing

JSON parsing settings

Row nodes

Select the array to form your CSV rows. Useful data rarely sits at the root. If your JSON contains multiple arrays, use this control to pick the right one.

Flatten nested objects

Expand objects like `company` or `metrics` into individual columns. Select specific objects to flatten, keeping your CSV organized and avoiding duplicate fields.

Array handling

Join arrays with a separator, format them as JSON strings, or apply custom rules. You can keep tags joined, leave complex arrays as JSON, or extract only the first item from a list.

Case-by-case array rules

Apply specific rules to different arrays. Set one rule for tags and another for contacts. Standard converters treat every array identically, but this gives you exact control over your final output.

CSV output settings

Separator

Export with a comma, semicolon, pipe, tab, or custom separator. Match the exact delimiter your target system requires.

Include header row

Choose whether your CSV includes column names in the first row. Remove headers to export raw data rows for another pipeline.

Date output format

Reformat dates before you export. Generate a CSV ready for spreadsheets or BI tools without manual edits.

Preview before download

Verify your row selection, flattened columns, and array rules in the preview before downloading the file.

Choosing the right row nodes

Selecting the correct array ensures an accurate conversion. JSON files often contain wrapper objects, metadata, and nested arrays. Simple converters pick the first array they detect, often returning incorrect data.

Use the Row nodes setting to select your target array. To get one row per company, pick the parent record. To get one row per contact, pick the child array.

This feature extracts business data from messy API payloads, CRM exports, and webhook logs.

When to use this tool

Convert JSON API response to CSV

Export data from APIs where records sit inside nested fields along with metadata.

Convert nested JSON to flat CSV columns

Turn nested company details, address blocks, and revenue data into clean spreadsheet columns.

Extract nested arrays from JSON

Target and export deeper arrays like contacts, line items, or events using the row node selector.

Convert CRM or webhook JSON exports to CSV

Prepare HubSpot exports, internal API payloads, and webhook logs for Excel or BI tools.

Handle arrays differently in the same JSON file

Join simple tags, keep the first item of a list, or stringify complex structures within the same file.

Prepare CSV for Excel, Sheets, or imports

Adjust separators, toggle headers, and format dates ensuring your CSV matches your destination system.

FAQ: complex JSON to CSV conversion

Can I convert a nested JSON file to CSV?

Yes. Pick the correct row nodes, select objects to flatten, and export your data.

Can I convert a JSON API response to CSV when the rows are inside a nested array?

Yes. Select the nested array (often called `results`, `items`, `data`), and the tool builds your CSV from those records.

What does the Row nodes setting do?

It determines which array forms your CSV rows. Use it to bypass root objects and target the exact data you need.

Can I choose which objects to flatten?

Yes. Select specific object paths to expand into columns. Unselected objects remain as JSON strings, keeping your export clean.

Can I apply different rules to different arrays?

Yes. Use case-by-case mode to join, stringify, or reduce arrays on a per-field basis.