Turn a JSON array into a spreadsheet-ready CSV, or a CSV into clean JSON. Nested objects are flattened with dotted keys, quotes and embedded commas are handled properly, and nothing is uploaded.
🔒 This tool runs entirely in your browser. Nothing you enter or upload is sent to our servers.
How to use the JSON to CSV Converter
- Paste your data, or drop a .json or .csv file onto the box. The direction is detected from what you paste and can be switched by hand.
- For JSON in, choose whether nested objects are flattened into dotted column names like address.city.
- For CSV in, pick the delimiter and decide whether numbers and true/false should become real JSON types instead of strings.
- Copy the result or download it as a file.
About this tool
CSV is what spreadsheets and data teams want; JSON is what APIs produce. Converting between them is easy to get wrong in ways that only show up later — a field containing a comma that splits into two columns, a description with a line break in it that becomes two rows, a quote mark that swallows the rest of the file.
The parser here follows RFC 4180, the CSV specification: a field wrapped in double quotes may contain the delimiter, line breaks and doubled-up quote marks, and all of that survives the round trip. Output is quoted only where it has to be, which keeps the file readable and diff-friendly.
JSON is rarely flat, and CSV cannot nest. When flattening is on, an object like {"user":{"name":"Ada"}} becomes a column called user.name, and arrays become tags.0, tags.1 and so on. Columns are the union of every key seen across all records, in the order they first appear, so records with missing fields produce empty cells rather than a misaligned row. Going the other way, dotted headers can be rebuilt back into nested objects, which makes the conversion reversible.
Everything runs in the page — no upload, no size cap beyond what your own browser’s memory allows, and no dependency on a CDN library. That matters if the data is customer records or an export you are not allowed to send to a third party.
Frequently asked questions
How do I convert JSON to CSV for Excel?
Paste the JSON, convert, and download the .csv. If Excel shows everything in one column, your regional settings expect semicolons — switch the delimiter to semicolon and download again.
What happens to nested objects and arrays?
With flattening on they become dotted column names: user.address.city, tags.0, tags.1. With it off, any nested value is written as compact JSON inside the cell, which is right if you plan to parse it later.
Does it handle commas and line breaks inside fields?
Yes, in both directions. Fields containing the delimiter, a double quote or a line break are quoted on output and parsed correctly on input, following RFC 4180.
Will "007" stay as text?
Only if you turn off type conversion. With it on, values that look like numbers become numbers, which drops the leading zeros — the usual trap with postcodes, phone numbers and IDs.
What JSON shape does it expect?
An array of objects is the normal case and maps to one row per object. A single object becomes one row. An array of plain values becomes a single column.
Is there a size limit?
Only your browser’s memory. Nothing is uploaded, so there is no server-side cap — but a file of several hundred megabytes will make any browser tab struggle.