// converters
JSON to CSV.
Take a JSON array of objects and export it as CSV, with custom delimiters and nested object flattening.
JSON input
CSV output
How JSON-to-CSV conversion works.
CSV (Comma-Separated Values) is a flat, row-based format — but JSON is often nested and hierarchical. This tool converts a JSON array of objects into CSV by extracting each object's keys as column headers and each array element as a row. Nested objects are flattened with dot notation: database.host becomes a column header.
Values containing commas, quotes, or newlines are properly quoted per RFC 4180 — the CSV standard. This prevents Excel from misinterpreting your data. The tool also escapes double quotes by doubling them (" → ""), which is the standard CSV escape mechanism.
When to use JSON-to-CSV.
Data export. When you need to export JSON data to a spreadsheet application (Excel, Google Sheets, Numbers), CSV is the universal interchange format. Copy the CSV output and paste it directly into a spreadsheet.
Data analysis. Tools like pandas, R, and SQL databases read CSV natively. Convert your JSON data to CSV before importing it for analysis, aggregation, or visualization.
API integration. Some APIs accept CSV uploads but not JSON. Convert your JSON data to CSV before sending it to an external service that requires flat, tabular data.
Input format requirements.
The JSON input must be an array of objects, a single object, or a JSON string containing an array. Each object in the array becomes a row in the CSV output. The union of all keys across objects becomes the columns. If objects have different keys, missing values are left empty. Nested objects are flattened; arrays within objects are joined with semicolons.
Example input: [{"name": "Ada", "email": "[email protected]"}]. The output will have columns name and email with one row of data.
Handling nested data.
CSV is flat by nature, but JSON often contains nested objects and arrays. This tool flattens nested objects using dot notation: a key path like address.city becomes a single column header. Arrays within objects are joined with semicolons, preserving the data without losing structure.
If your JSON has deeply nested structures, consider whether CSV is the right export format. For hierarchical data, JSON or YAML may be more appropriate. Use CSV export when your consumers need flat, tabular data for spreadsheet operations or database imports.
Best practices for clean output.
Ensure every JSON object has consistent keys before converting. If some objects have additional fields, those columns will be empty for objects without them. Clean and normalize your data first for the best results.
The CSV output uses standard RFC 4180 quoting: fields containing commas, quotes, or newlines are enclosed in double quotes, and any embedded quotes are doubled. This ensures maximum compatibility with spreadsheet applications, databases, and data processing tools.
FAQ
What JSON formats are supported?
The tool accepts arrays of objects (most common), single objects (converted to a single-row CSV), and JSON strings that contain an array. Each object in the array becomes a row in the CSV output.
How are nested objects handled?
When "Flatten nested objects" is enabled, nested objects are expanded using dot notation. For example, {"address": {"city": "NY"}} becomes the column address.city with value NY.
How are arrays in JSON values handled?
Arrays within object values are joined using semicolons. For example, {"tags": ["a", "b"]} becomes a;b in the CSV output.
Is my data uploaded to a server?
No. The conversion happens entirely in your browser using JavaScript. Your data is never sent to any server. You can verify this by opening your browser's Network tab.
Can I convert JSON to Excel?
Yes. Download the CSV output and open it in Excel, Google Sheets, or any spreadsheet application. CSV is the standard interchange format for tabular data.
What about values with commas or quotes?
The tool automatically escapes values that contain the delimiter, newlines, or double quotes by wrapping them in double quotes and escaping internal quotes with double-double-quotes, following RFC 4180.