Convert JSON to CSV
Convert JSON to CSV in your browser: load your JSON, choose CSV as the target, and download the result. The converter reports exactly what it could not carry across, and nothing is uploaded to a server.
Convert JSON to CSVRuns in your browser. Nothing uploaded.
When you need this
An array of records is a table whether or not it is stored as one. Converting makes it something a spreadsheet, a BI tool, or a colleague without a terminal can open — which is usually the actual goal when someone asks for "the data as a file".
How to convert JSON to CSV
- Load your JSON
- Drag the .json file in, paste the text, or open it straight from a URL — an API response usually arrives as a paste. Nothing leaves your browser at this or any later step.
- Choose the target format
- Press Ctrl+Shift+K (Cmd+Shift+K on a Mac) to open the conversion panel, then pick CSV as the target. The source and the result sit side by side.
- Read the loss report
- The panel shows whether the conversion is lossless for your particular data, and lists every value it had to transform. Adjust indentation, key sorting and null handling if you need to.
- Take the CSV
- Download the .csv file, copy it, or open it as a new tab to keep working on it in the CSV views.
What survives the conversion
JSON to CSV cannot be lossless, because the two formats express different things. Only an array of flat objects converts cleanly; nested values are flattened or dropped.
- Only an array at the root has a table shape. An object at the root has no rows, and the converter says so rather than inventing a single-row table from its keys.
- Columns are the union of the keys across every row, so a record missing a key gets an empty cell rather than shifting the row left. This is the failure mode of hand-written scripts and the reason the column count is worth checking.
- A nested object or array in a cell is serialised as JSON text, because a CSV cell holds exactly one value. Every occurrence appears in the warnings.
A worked example
A missing key becomes an empty cell, not a shifted row:
[
{ "id": 1, "name": "Ada", "team": "core" },
{ "id": 2, "name": "Grace" }
]id,name,team
1,Ada,core
2,Grace,Privacy
The conversion runs in your browser — in a Web Worker for anything above a quarter of a megabyte, so the page stays responsive. Your data is not uploaded, not logged and not stored. There is no account, and the whole thing works offline.
Questions
What happens to nested objects?
They are written into the cell as JSON text, and listed in the loss report. A CSV cell cannot hold structure, so the alternatives are text, a flattened a.b.c column set, or dropping the value — and silently dropping it is the one option that would make the file lie about your data.
Is converting JSON to CSV lossless?
No, and no tool can make it so. Only an array of flat objects converts cleanly; nested values are flattened or dropped. The converter lists every affected value rather than silently dropping it.
Is my JSON uploaded to a server?
No. The file is read and converted by your browser. Nothing about its contents is sent anywhere, which you can verify in your browser’s network panel or by using the tool with the network disconnected.