JSON to CSV Converter
This JSON to CSV converter turns a JSON array of objects into clean CSV you can open in a spreadsheet. Paste or upload your JSON, and it builds the columns, escapes the values, and shows the result instantly. It is built for developers, analysts, and anyone who needs JSON data in a tabular format.
It handles real-world data, not just flat records: nested objects are flattened into dot-notation columns (such as address.city), arrays are kept as JSON strings, and inconsistent keys across objects are merged into a single header row. Switch between a raw Text view and a spreadsheet-style Table view, then download a .csv file or copy the output to your clipboard.
How to Convert JSON to CSV
Add your JSON
Paste a JSON array of objects into the input panel, click Upload File to load a .json or .txt file, or click Sample Data to try it with example data. A single JSON object is automatically wrapped in an array.
Choose your options
Pick a Delimiter — comma, tab, semicolon, or pipe — to match your target app. Keep Flatten nested on to expand nested objects into separate columns, or turn it off to keep them as JSON strings.
Preview the result
Conversion happens as you type. Stay in the Text view for raw CSV, or switch to the Table view to see your data in a spreadsheet-like grid with row numbers. The status bar reports rows, columns, and output size.
Export your CSV
Click Download to save the result as a .csv file, or Copy to send the CSV text to your clipboard. Open the file directly in Excel, Google Sheets, or Numbers.
Features
Instant Conversion
JSON arrays of objects convert to CSV in real time as you type or paste — no button to press, no waiting.
Nested Object Flattening
Nested objects expand into separate columns using dot notation, so {"address":{"city":"NY"}} becomes an address.city column.
Toggle Flatten On or Off
Turn flattening off to keep nested objects as compact JSON strings in a single column instead of expanding them.
Four Delimiter Options
Choose comma, tab, semicolon, or pipe to match standard CSV, TSV, European locales, or comma-heavy data.
Table Preview
View your output in a spreadsheet-style table with sticky headers, row numbers, and striped rows, scrollable for wide datasets.
Raw Text View
Switch to the Text view to read the exact CSV output character for character before you export it.
Upload JSON Files
Load a .json or .txt file straight from your device instead of pasting long data by hand.
Download & Copy
Save the result as a .csv file or copy the CSV text to your clipboard with a single click.
Standards-Compliant Escaping
Values that contain the delimiter, double quotes, or line breaks are automatically quoted and escaped per the CSV spec (RFC 4180).
Live Status Bar
A status bar shows validation state plus the row count, column count, and output file size as you work.
One-Click Sample Data
Load ready-made example JSON with nested objects and arrays to test the converter without typing anything.
Single Object Auto-Wrap
Paste a single JSON object and it is automatically wrapped in an array, so it converts to a one-row CSV with no edits.
Frequently Asked Questions
How do I convert JSON to CSV?
Paste a JSON array of objects into the input panel (or upload a .json file), pick a delimiter, and the CSV is built instantly. Then click Download to save a .csv file or Copy to copy the text. There is nothing to install or sign up for.
What JSON format does this tool accept?
It accepts a JSON array of objects, such as [{"name":"John"},{"name":"Jane"}]. A single JSON object is automatically wrapped in an array. Plain primitive values (a lone string, number, or boolean) are not supported because they do not map to rows and columns.
How is nested JSON converted to CSV?
With Flatten nested enabled, nested objects are expanded into separate columns using dot notation — {"user":{"name":"John"}} becomes a user.name column. Turn the toggle off and each nested object is kept as a JSON string in a single column instead.
How are arrays inside objects handled?
Arrays are always serialized as JSON strings, regardless of the flatten setting. For example, {"tags":["a","b"]} produces ["a","b"] in the CSV cell rather than separate columns.
What if objects have different keys?
The converter collects every unique key across all objects to build the header row. Where an object is missing one of those keys, the matching cell is simply left empty, so the columns always line up.
Which delimiter should I use?
Use comma for standard CSV files. Use tab for TSV or when pasting straight into a spreadsheet. Use semicolon for European locales where the comma is a decimal separator. Use pipe when your data already contains commas and semicolons.
How do I open the CSV in Excel or Google Sheets?
Click Download to get a .csv file, then open it in Excel, Google Sheets, or Numbers. If columns do not split correctly, re-export with a different delimiter — tab or semicolon often matches your spreadsheet's regional import settings best.
Is there a size limit?
There is no hard limit because everything is processed in your browser. Very large datasets (beyond about 10,000 rows) may convert more slowly, and the table preview is capped at 500 rows for responsiveness — the full data is still included in the downloaded file.
Is the conversion done in my browser?
Yes. All parsing, flattening, and CSV generation run locally in your browser. Your JSON is never uploaded, and nothing you convert is stored or tracked, so it is safe for sensitive or private data.
No comments yet. Be the first to comment!