JSON to CSV Converter
Convert JSON arrays to CSV instantly in your browser. Supports nested objects, custom delimiters, and one-click download. Free and private -- no data sent to any server.
Quick Answer
How do I convert JSON to CSV for free?
Paste your JSON array into the input box and click Convert. The tool instantly produces a CSV with headers from your JSON keys. Nested objects are flattened using dot notation. You can copy the result or download it as a .csv file. No signup required and no data is sent to any server.
JSON to CSV Converter
All conversion happens in your browser -- your data never leaves your device
No input
No output
About this tool
This JSON to CSV converter runs entirely in your browser -- no server uploads, no accounts, no data storage. Paste any valid JSON array of objects and get a properly formatted CSV back in seconds. It handles the edge cases that trip up most online converters: nested objects, inconsistent keys across rows, array values, null fields, and special characters that need quoting.
The tool is built for developers working with API responses, database exports, and data pipeline outputs. Whether you need to load JSON data into a spreadsheet, import records into a CRM, or hand off structured data to a non-technical colleague, the one-click download gets you a clean .csv file without any manual reformatting.
How it works
- 1
Paste your JSON
Paste your JSON array into the input textarea. Use the Format JSON button to pretty-print it first if needed.
- 2
Select your delimiter
Choose comma (standard CSV), semicolon (common in European locales), or tab (TSV). The download file extension updates automatically.
- 3
Click Convert
The converter extracts all unique keys across every object, flattens nested objects using dot notation, and writes one CSV row per JSON object.
- 4
Copy or Download
Copy the output to clipboard for pasting into a spreadsheet, or download it as a .csv file for import into Excel, Google Sheets, or any data tool.
Supported JSON formats
1. Array of objects (most common)
JSON input
[
{"name": "Alice", "age": 30},
{"name": "Bob", "age": 25}
]CSV output
name,age
Alice,30
Bob,252. Single object (auto-wrapped in array)
JSON input
{"name": "Alice", "city": "NYC"}CSV output
name,city
Alice,NYC3. Nested objects (flattened with dot notation)
JSON input
[
{
"name": "Alice",
"address": {
"city": "NYC",
"zip": "10001"
}
}
]CSV output
name,address.city,address.zip
Alice,NYC,10001JSON to CSV conversion rules
| Input type | How it is handled |
|---|---|
| Array values | Joined with a pipe character (e.g. tag1|tag2|tag3) |
| Nested objects | Flattened one level deep using dot notation (e.g. address.city) |
| null / undefined values | Output as an empty string -- the CSV cell is left blank |
| Special characters | Values containing the delimiter or quotes are wrapped in double quotes; internal quotes are doubled per RFC 4180 |
| Missing keys | Union of all keys used as headers; missing values for any row output as empty string |
| Numeric values | Output as-is without quoting (e.g. 42, 3.14) |