JSON to CSV Converter

Convert JSON arrays to CSV format instantly — download as .csv for Excel, Google Sheets, or any data tool.

About JSON to CSV Conversion

Converting JSON to CSV (Comma-Separated Values) is one of the most common data transformation tasks in software development and data analysis. JSON is the preferred format for APIs and web services, but CSV is the standard format for spreadsheets, business intelligence tools, and data processing pipelines.

This tool handles JSON arrays of objects, which is the most common structure returned by REST APIs. Each object in the array becomes a row, and the keys of the first object are used as column headers. If objects have different keys, missing values are left empty.

The converter supports multiple delimiters — comma (standard), semicolon (common in European locales where commas are used as decimal separators), tab (for TSV files), and pipe. You can also opt to include or exclude the header row.

Use cases include exporting API data to Excel for business reporting, preparing datasets for pandas or R analysis, migrating data between databases, and generating reports from application logs stored as JSON.

Frequently Asked Questions

What JSON structure is supported?
The tool expects a JSON array of objects at the root level — e.g., [{"key":"value"}, ...]. Nested objects are flattened to their string representation. For deeply nested JSON, consider using the JSON Flatten tool first.
How are special characters handled?
Values containing commas, quotes, or newlines are automatically wrapped in double quotes and internal double quotes are escaped as "" per the RFC 4180 CSV standard.
Can I open the CSV in Excel?
Yes. Download the .csv file and open it directly in Excel, Google Sheets, LibreOffice Calc, or any spreadsheet application. If you're in a locale that uses semicolons as separators, select the semicolon delimiter before converting.
What if my objects have different keys?
The tool collects all unique keys across all objects and uses them as headers. Objects that don't have a particular key will have an empty cell in that column.