What This Tool Does
This tool converts a JSON array of objects into CSV (comma-separated values) text — the same universal format that Excel, Google Sheets, and Apple Numbers can all open directly, either by double-clicking a saved .csv file or by importing/pasting the text. It builds the header row from the union of every key found across all the objects in your array, so even if some records have extra or missing fields, every column still gets accounted for.
To be precise about what it produces: this generates Excel-compatible CSV output, not a native .xlsx spreadsheet file. There are no worksheets, tabs, cell formatting, colors, or formulas — just clean, correctly escaped rows and columns of text that any spreadsheet application will read as a table the moment you open it.
How to Use It
- Paste a JSON array of objects into the Input box above (for example, a list of customer records or product rows).
- Click Run to convert it.
- The Output box fills with CSV text: a header row of column names, followed by one line per object.
- Copy the output, then either save it as a
.csvfile (paste into a plain text editor and save with a.csvextension) or paste it directly into a new Excel or Google Sheets workbook. - Use Clear to reset both boxes and start over with a new JSON array.
Worked Example
Given this JSON input:
[
{ "name": "Ana Torres", "role": "Engineer", "city": "Madrid" },
{ "name": "Kofi Boateng", "role": "Designer", "city": "Accra" },
{ "name": "Lin Wei", "role": "Engineer" }
]
The tool produces this CSV output. Notice that "city" appears as a column because at least one object has it, and Lin Wei's row simply leaves that cell blank since the key is missing from that object:
name,role,city
Ana Torres,Engineer,Madrid
Kofi Boateng,Designer,Accra
Lin Wei,Engineer,
Any value containing a comma, double quote, or newline is automatically wrapped in double quotes (with internal quotes doubled), following standard CSV escaping rules, so the file stays valid even with messy real-world text.
Opening the Output in Excel
The most reliable route is to save the output as a plain text file with a .csv extension and then double-click it — Excel, Sheets, and Numbers will all open it as a properly columned table automatically. If you instead paste the text directly into a spreadsheet and notice values landing in the wrong columns (this can happen with certain special characters or regional separator settings), use Excel's Data > From Text/CSV import option, or Google Sheets' File > Import, instead of a raw paste. This gives you a preview step where you can confirm the delimiter and column boundaries before the data is loaded.
Frequently Asked Questions
Does this create a real .xlsx file?
No. This tool generates plain-text CSV output, not a native .xlsx binary file. It's Excel-compatible — Excel, Sheets, and Numbers all open CSV natively — but there are no worksheets, cell formatting, or formulas involved.
What if my JSON objects have different fields?
The header row is built from the union of all keys across every object. Objects missing a given key simply get a blank cell in that column — no error is raised.
Is my data uploaded anywhere?
No. Conversion happens entirely client-side in your browser. Nothing you paste here is sent to a server or stored.
Why does a nested object or array show up as raw text in one cell?
CSV has no concept of nested data. Nested objects and arrays are serialized with JSON.stringify and placed inline as a single cell value so the row structure stays intact.
Does the input need to be an array of objects?
Yes. A single object, a flat array of strings or numbers, or invalid JSON will produce a clear error rather than a converted result, since each array element needs to map to one CSV row.
Related Tools & Guides
Browse the full tools directory for more JSON converters and utilities, or check the blog for deeper guides on data formats. Since this tool produces the exact same CSV output as the JSON to CSV Converter, use whichever page's name matches how you think about your workflow — they are functionally identical.