JSON to CSV Converter
Turn a JSON array into a CSV file: paste the records or open a .json file, pick a delimiter, and download the result. Everything runs in your browser.
How to use
- Paste a JSON array into the text box or choose a .json file. Each element of the array becomes one CSV row.
- Pick the delimiter the target app expects: comma for standard CSV, semicolon for some European spreadsheet locales, tab for TSV.
- Tick "Flatten nested objects and arrays" if your records contain nested fields; they become dotted columns like address.city and tags.0.
- Press Convert, check the preview and the row and column counts, then download the CSV.
Frequently asked questions
Is my data uploaded anywhere?
No. The conversion runs entirely in your browser tab. Your file is read with the browser's own File API, the JSON is parsed locally in JavaScript, and the CSV is built on your device. No server receives any part of your data, and the tool works offline once the page has loaded.
How large can my JSON file be?
There is no upload limit because nothing is sent anywhere; the limit is your browser tab's memory. Files up to tens of megabytes convert quickly. A JSON export of several hundred megabytes can exhaust the tab and fail, so split exports that size into chunks first.
What happens to nested objects and arrays?
Turn on the "Flatten" option. Nested objects become columns joined with dots, and arrays get numbered indexes: {"address": {"city": "Oslo"}} becomes a column named address.city, and a tags array ["a", "b"] becomes tags.0 and tags.1. Flattening goes five levels deep; anything deeper is written as a JSON string in one cell. Without Flatten, nested values are written as JSON text in a single cell.
Why does the file use CRLF line endings?
RFC 4180, the specification that defines CSV, requires each row to end with a carriage return plus line feed (CRLF). Spreadsheet applications and CSV parsers expect this, so the converter follows the spec. Tools that expect Unix line endings handle CRLF fine in practice.