JSON to CSV Converter — Free, No Upload
Convert a JSON array of objects into CSV — opens cleanly in Excel, Google Sheets, Numbers. Choose delimiter, optionally flatten nested keys. Runs in your browser.
When you'll convert JSON to CSV
JSON is the lingua franca of APIs and modern web services; CSV is the lingua franca of spreadsheets, business analysts and legacy data tools. Every time you pull data from an API and need to hand it to a finance team, build a quick pivot table, or load it into a tool that doesn't speak JSON, this conversion is the first step. Common cases include analytics exports, e-commerce order dumps, CRM data, survey responses and audit logs.
CSV opens directly in Microsoft Excel, Google Sheets, LibreOffice Calc, Apple Numbers and every database import wizard. JSON requires more work to consume in those tools. Converting once and sharing the CSV makes everyone's life easier.
What this tool expects
The input should be a JSON array of objects:
[
{"name": "Ada Lovelace", "year": 1815, "field": "mathematics"},
{"name": "Grace Hopper", "year": 1906, "field": "computing"},
{"name": "Marie Curie", "year": 1867, "field": "physics"}
]
The first object's keys become the CSV column headers (unless you uncheck the header option). Each subsequent object becomes one row. Missing keys produce empty cells.
Flattening nested keys
CSV is fundamentally flat — there are no nested cells. If your JSON has nested objects, the flatten option converts them into dot-separated column names:
{"name": "Ada", "address": {"city": "London", "country": "UK"}}
// becomes
name | address.city | address.country
Ada | London | UK
Arrays are joined into a single cell with semicolons. Without flattening, nested values appear as [object Object] or quoted JSON — usually not what you want.
CSV delimiters explained
- Comma — the original CSV. Works almost everywhere, but breaks when cell values contain commas (the tool quotes those cells automatically).
- Semicolon — the European-locale standard, used by Excel in regions where comma is the decimal separator. Always safer for European/UK Excel.
- Tab (TSV) — used by some scientific and biology tools. Rarely appears in cell values, so quoting is rarely needed.
- Pipe — niche, used in some database tools where commas and tabs are common in cell values.
If Excel opens your CSV with everything in column A, your delimiter doesn't match Excel's locale. Try semicolon instead.
CSV escaping rules
This converter follows RFC 4180 escaping:
- Cell values containing the delimiter, double quotes, or newlines are wrapped in double quotes.
- Double quotes inside cells are doubled (
"→""). - The result opens cleanly in Excel, Sheets, Numbers and all RFC-compliant parsers.
Common issues and fixes
- "Input is not an array" error — wrap your single object in
[ ]brackets. - Excel opens everything in column A — switch the delimiter to semicolon, or re-import via Data → Get External Data.
- Non-ASCII characters look broken — Excel may default to ASCII import. The CSV is UTF-8; choose UTF-8 in the import dialog.
- Numbers turn into dates — Excel auto-converts anything that looks like a date. Prefix with a single quote or import as text.
FAQs about JSON to CSV
What if my JSON is not an array?
Wrap a single object in brackets: [{...}]. Or for object-of-objects, you'll need to convert the structure first.
Will my CSV open cleanly in Excel?
Yes — RFC 4180 escaping is used. For UK/European Excel, choose semicolon as the delimiter.
Are nested arrays supported?
Arrays are joined with semicolons into a single cell. For more sophisticated handling, restructure the JSON first.
Is anything uploaded?
No. The conversion runs in your browser.
What about huge JSON files?
Tested fine on files up to ~10 MB. Beyond that, browser memory becomes the limit.