Turn JSON into Spreadsheet-Ready CSV
JSON is wonderful for machines and miserable for meetings. When data needs to be sorted, filtered, charted or simply shown to someone, a spreadsheet wins — and spreadsheets speak CSV. This converter transforms a JSON array into a proper CSV table: paste JSON or upload a .json file, and download a CSV that opens cleanly in Excel, LibreOffice or Google Sheets. Like every tool on this site, it processes the data entirely in your browser, which matters when the JSON in question is an export of users, orders or anything else you would rather not paste into a random website's server.
How to Convert
- Paste a JSON array of objects — the shape most APIs return — or drop a .json file onto the upload zone.
- Click Convert. The tool determines the full set of columns, builds the header row, and renders every record as a CSV line.
- Preview the result, then copy it or download a .csv file ready for any spreadsheet application.
How the Tricky Parts Are Handled
Real JSON is rarely a perfect rectangle, so the converter makes sensible, predictable decisions. Inconsistent objects: the column set is the union of keys across all records, and records missing a key get an empty cell — no data is dropped because the first record happened to be incomplete. Nested objects are flattened with dotted column names: {"user":{"name":"Ada"}} becomes a user.name column, preserving structure in a form spreadsheets can use. Arrays inside records are serialized into a single cell as JSON text, keeping the row rectangular while losing nothing. Special characters: fields containing commas, quotes or line breaks are quoted and escaped exactly per the CSV standard, so the file survives the round trip into Excel intact.
Common Scenarios
- API responses for non-developers: fetch JSON from an endpoint, convert, and hand colleagues a spreadsheet.
- Reporting: application exports become pivot tables and charts in minutes.
- Data review: scanning a thousand records is far faster in a sortable grid than in raw JSON.
- Import bridges: countless business systems import CSV but not JSON.
- Quick diffing: two JSON exports converted to CSV can be compared in a spreadsheet side by side.
Limits, Stated Honestly
CSV is a flat format and JSON is a tree, so deeply nested structures lose elegance in translation: a record containing an array of fifty sub-objects fits a relational database better than a single spreadsheet row, and the JSON-in-a-cell fallback exists for exactly those cases. If your input is a single object rather than an array, the tool converts it as one row; if it is an array of plain values, you get a one-column table. Excel users in semicolon-delimited locales can switch the output delimiter to semicolon so the file opens in columns without an import wizard. Within those boundaries — which are the format's, not the tool's — the conversion is exact, fast for tens of thousands of records, and completely private.
And a closing tip for recurring reports: keep the JSON-to-CSV step at the very end of your pipeline. Work in JSON for as long as the data is being filtered, merged or enriched — the structure protects you — and flatten to CSV only when a human or a spreadsheet needs the result. Treating CSV as a presentation format rather than a working format avoids most of the painful flattening decisions entirely.
Frequently Asked Questions
My JSON objects have different keys — what happens?
The converter builds the column list from the union of all keys across all records. Records missing a key simply get an empty cell, so no field is ever silently dropped.
How are nested objects converted?
They are flattened using dotted column names — user.address.city, for example. Arrays inside records are kept as JSON text inside a single cell to preserve the data without breaking the table shape.
Excel opens everything in one column. How do I fix it?
Your Excel locale probably expects semicolons. Set the delimiter option to semicolon and convert again — the file will then open directly into columns.
Can I convert a huge JSON export?
Yes — tens of thousands of records convert in moments, since everything runs locally. Extremely large files are limited only by your browser’s memory, not by any server quota.