Convert JSON to CSV Online Free — No Upload, Data Intact
Turn JSON arrays into clean CSV files right in your browser — with UTF-8 BOM so Excel opens them without garbled characters. No upload, no signup, no limits.
Drop .json files here, or click to browse
Supports .json · processed locally · never uploaded
Convert JSON to CSV in three steps
- Drop a .json file into the box above (or click to browse).
- Press “Convert to CSV” — parsing and serialization happen instantly on your device.
- Download the CSV file directly, or grab every table at once as a ZIP.
No sign-up, no watermarks, no file-size nagging. If the JSON contains several tables, each one becomes its own CSV file named after its key.
Two JSON layouts, one click
Both common JSON-to-table layouts are accepted — no pre-processing needed:
| JSON input | What you get |
|---|---|
| [ { "id": 1 }, { "id": 2 } ] | One CSV file named Sheet1 with a header row |
| { "Users": [...], "Orders": [...] } | One CSV file per key, generated in key order |
Keys become sheet names and download file names, so keep them short and file-name friendly.
Clean, Excel-ready output
- UTF-8 BOM at the start of every file, so accents, CJK text and symbols open correctly in Excel.
- CRLF line endings and RFC 4180 quoting — commas, double quotes and line breaks inside values never break the table.
- First row = the object keys; every following row = one array element.
- Missing keys become empty fields instead of shifting your columns.
How values are written
| JSON value | CSV cell |
|---|---|
| "Alice" | Alice |
| 42 / true / null | 42 / TRUE / (empty) |
| "2020-01-15" | 2020-01-15 (kept as text) |
| { "city": "Oslo" } | {"city":"Oslo"} (serialized as JSON text) |
CSV is a text format: numbers, booleans and dates are written as plain text, and your spreadsheet app recognizes them again the moment you open the file.
Private by design
The conversion runs entirely in JavaScript inside your browser tab. There is no server round-trip, no temporary storage and no analytics on your file contents — close the tab and nothing remains.
Frequently Asked Questions
Which JSON shapes can I convert?
A top-level array of objects becomes a single CSV file named Sheet1. An object whose values are arrays of objects becomes one CSV file per key, generated in key order. Anything else — plain strings, numbers at the top level, or arrays containing non-objects — is rejected with a clear error.
How are the columns determined?
Columns are the union of every row’s keys, merged in first-seen order. If row 3 introduces a key the first two rows didn’t have, it becomes a new column on the right, and earlier rows simply leave that cell empty.
Why does my CSV start with a strange invisible character?
That is the UTF-8 byte order mark (BOM). It is intentional: it tells Excel the file is UTF-8, so names like Renée or 北京 display correctly instead of turning into garbled text.
What happens to nested objects and arrays?
CSV cells can only hold text, so nested values are serialized as compact JSON strings, e.g. {"city":"Oslo"}. Nothing is silently flattened or dropped.
Will dates stay dates?
Date strings are written exactly as they appear in your JSON — no silent conversion to spreadsheet serial numbers. Whether your spreadsheet app parses them as dates is up to its locale settings.
Can one file produce several CSVs?
Yes. When the JSON object has multiple keys, every key becomes its own CSV file. You can download each one separately, or take them all at once in a single ZIP archive.
Is my data uploaded to a server?
No. The file is read and converted by JavaScript in your browser. Your data never leaves your device.
Can I turn CSV back into JSON?
Yes. Use our CSV to JSON converter — it detects comma, semicolon and tab separators automatically and restores the first row as object keys.
Related Tools
Need to view or edit the data after converting?
Open the free online Excel editor