How to use JSON to CSV Converter
To convert JSON to CSV, paste your JSON array into the Input panel. The JSON must be an array of objects at the top level — for example: [{"name":"Alice","age":30},{"name":"Bob","age":25}]. Click Convert and the tool extracts the keys from the first object as column headers, then maps each object's values into a corresponding CSV row. The resulting CSV appears in the Output panel and is ready to copy or download.
For nested objects, the tool flattens them using dot notation — so {"address":{"city":"Paris"}} becomes a column named address.city. Arrays inside objects are serialized as JSON strings within the CSV cell so no data is lost. If your objects have inconsistent keys (some records have fields others don't), missing values are represented as empty cells. Click Download CSV to save the file directly to your device, or Copy to paste the output into a spreadsheet application.
Why use our JSON to CSV Converter?
- Handles nested objects by flattening them with dot-notation column headers
- Supports inconsistent object shapes — missing keys produce empty CSV cells rather than errors
- One-click CSV download — saves directly as a .csv file ready to open in Excel or Google Sheets
- 100% browser-based — your JSON data never leaves your device
- Instant conversion with no page reload
- Download as a .csv file ready to open directly in Excel or Google Sheets
Frequently Asked Questions
What JSON structure does this converter expect?
The converter expects a JSON array of objects at the top level, where each object represents one row and the keys represent column names. For example: [{"id":1,"name":"Alice"},{"id":2,"name":"Bob"}]. It does not accept a single JSON object (use an array with one element), a JSON array of primitive values (strings, numbers), or deeply nested arrays of arrays. If your JSON is structured differently, you will need to reshape it before converting.
How are nested objects and arrays handled?
Nested objects are flattened with dot notation. A field like {"address":{"city":"Paris","zip":"75001"}} produces two columns: address.city and address.zip. Arrays inside objects (e.g., a tags field containing ["javascript","web"]) are serialized as a JSON string within the CSV cell — the cell will contain ["javascript","web"]. This preserves the data without losing information, though the resulting cell is not directly usable as multiple values in most spreadsheet tools. Consider pre-processing deeply nested or array-heavy JSON before converting if you need a flat structure.
How do I open the downloaded CSV in Excel or Google Sheets?
In Excel: open Excel, go to File → Open, select the downloaded .csv file, and Excel will detect the delimiter automatically. If values appear in one column, use Data → Text to Columns and choose Comma as the delimiter. In Google Sheets: go to File → Import, upload the .csv file, and select Comma as the separator. Both applications handle quoted fields (values that contain commas or newlines, which are wrapped in double quotes by the converter) correctly.
What happens if my JSON objects have different keys?
The converter uses the union of all keys found across every object in the array as the column headers. Objects that are missing a particular key produce an empty cell in that column. For example, if the first object has {"name":"Alice","email":"[email protected]"} and the second has {"name":"Bob","phone":"555-1234"}, the CSV will have three columns: name, email, and phone — with Alice's phone cell empty and Bob's email cell empty.