JSON to CSV
Convert a JSON array of objects into a downloadable CSV file.
About JSON to CSV
JSON to CSV converts an array of JSON objects into a table-shaped CSV download. It collects property names across the records to form column headers and writes one data row per object. A single object is also supported and becomes a one-row table. Use it when an API response or small data export needs to be opened in a spreadsheet or inspected as rows and columns.
This converter is most convenient for records with a similar structure. Nested objects and arrays are kept as JSON text inside a cell rather than expanded into extra columns. The preview shows up to 20 data rows, while the downloaded CSV includes the complete result. Validate the record shape before relying on the file for another import.
How to use JSON to CSV
- Prepare records
Use a JSON array of objects, or a single object. An empty array cannot be converted.
- Paste the input
Enter it in JSON input; conversion and syntax checking happen automatically.
- Check the preview
Review the row and column counts and inspect the visible CSV headers and cells.
- Save all rows
Select Download .csv to save the complete table, including rows beyond the preview.
Example: Two records into a table
Object property names become the header row and each object contributes one row.
Input
[{"name":"Ada","role":"Engineer"},{"name":"Lin","role":"Designer"}]Output
name,role
Ada,Engineer
Lin,DesignerHow it works
After parsing the input, the converter checks that each row is an object rather than an array or primitive. It scans the records for property names, adding a column the first time a name is encountered. Each record is then written in that shared column order. A missing property or null value becomes an empty cell. Objects and arrays inside a property are serialized into JSON text for that cell instead of recursively flattened.
Cells containing commas, quotes or line feeds are enclosed in quotes, and embedded quotes are doubled for CSV output. Rows are separated with carriage-return and line-feed characters. The preview shows the header and up to 20 data rows so the interface stays manageable; the download uses the entire generated CSV. A spreadsheet’s import settings still determine how it interprets dates, leading zeros and numeric text, so check those settings when the data’s original types matter.
When is this useful?
- Inspect API records in a spreadsheet.
- Create a CSV from a small JSON data export.
- Compare objects with missing or additional properties as columns.
Things to know
- Nested values are not flattened into separate columns.
- Empty arrays and rows containing primitive values are rejected.
- Spreadsheet imports may reinterpret values; the converter does not neutralize formula-like cell text in untrusted data.
Privacy & processing
JSON parsing and CSV generation run in this browser, and the download is created from a local text result. The records are not submitted to a ToolMyth processing API.
Frequently asked questions
Can I paste one object instead of an array?
Yes. It becomes a single data row, with its property names used as headers.
What happens when one record lacks a property?
The column still exists if another record has that property. The missing value becomes an empty cell.
Does the download contain only the preview rows?
No. The preview is limited to 20 data rows, but Download .csv contains all converted records.
Are nested objects turned into more columns?
No. They are serialized as JSON text in one cell. Restructure the input first if you need a flat table.