WebToolsPlanet
Converter Tools

JSON to CSV Converter

Paste a JSON array of objects and convert it to CSV instantly. Nested objects are flattened with dot-notation column names. Download or copy the output ready for Excel, Google Sheets, or any data tool.

Last updated: May 21, 2026

Client-Side Processing
Input Data Stays on Device
Instant Local Execution

Find this tool useful? Support the project to keep it free!

Buy me a coffee

What is JSON to CSV Converter?

JSON arrays of objects are the most common format for API responses and data exports, but spreadsheets, databases, and most data analysis tools work best with flat CSV. Converting a JSON array to CSV means mapping each object to a row and each key to a column.

This converter handles the common challenges: nested objects are flattened to dot-notation columns (e.g. address.city), arrays within values are joined with " | " as a separator, and null or missing values become empty cells. A single JSON object (not an array) produces a single CSV row. If the input is a JSON object containing an array, that array is used as the row source automatically.

How to Use JSON to CSV Converter

1

Paste JSON into the input area or click "Load Sample"

2

Toggle "Flatten Nested" to expand nested objects into dot-notation columns

3

Toggle the header row on or off

4

Choose quoting mode: Minimal or Always

5

Copy the CSV output or download it as a .csv file

Common Use Cases

  • Developers converting JSON API responses to CSV for import into Excel or Google Sheets.
  • Data analysts flattening JSON data exports for analysis in pandas or R.
  • Back-end engineers converting database query results (returned as JSON) to CSV for reporting.
  • Product managers turning JSON analytics event data into spreadsheets for stakeholder review.
  • ETL engineers transforming JSON source data to flat CSV for loading into data warehouses.
  • QA engineers exporting JSON test result objects to CSV for tracking and filtering.

Example Input and Output

A JSON array of user objects with a nested address is converted to flat CSV with dot-notation columns.

JSON input
[
  { "id": 1, "name": "Alice", "address": { "city": "London", "country": "UK" } },
  { "id": 2, "name": "Bob",   "address": { "city": "Paris",  "country": "FR" } }
]
CSV output
id,name,address.city,address.country
1,Alice,London,UK
2,Bob,Paris,FR

Privacy

All JSON parsing and CSV conversion runs in your browser. No data is uploaded to any server.

Opening in Excel

Download the .csv file and open it directly in Excel or Google Sheets. If numbers are being treated as text, format the column as "Number" in the spreadsheet after import.

Frequently Asked Questions

What JSON shapes are supported?
An array of objects is the primary input. A single object produces one row. A JSON object containing a nested array uses that array as the rows. An array of primitives (strings, numbers) produces a single "value" column.
What does "Flatten Nested" do?
When enabled, nested objects like { "address": { "city": "London" } } are expanded into a flat column named "address.city". When disabled, nested objects are kept as a JSON string in a single column.
How are arrays within values handled?
Array values within objects are always flattened to a single cell with items joined by " | ". For example, { "tags": ["api", "v2"] } becomes tags = "api | v2".
What happens to null or missing keys?
Null values and keys missing from some records produce empty cells in the CSV. All keys from all records are collected, so every row has the same number of columns.
Is my data sent to a server?
No. All conversion runs in your browser. Your JSON never leaves your device.