JSON to CSV Converter
Turn a JSON array of objects into a CSV table — nested fields become dot-notation columns, ready for Excel or Google Sheets.
From API response to spreadsheet
The most common reason to convert JSON to CSV: someone needs the data in Excel or Google Sheets. APIs speak JSON, spreadsheets speak rows and columns — this tool bridges the two. Paste a JSON array of objects, press Convert, and each object becomes a row; the union of all keys becomes the header line.
How nested JSON is handled
CSV is flat, JSON is not — so nested objects are flattened into dot-notation columns:
{ "name": "Ada", "address": { "city": "Vienna", "zip": "1010" } }
→ name,address.city,address.zip
Ada,Vienna,1010Arrays inside a record can't become columns of their own, so they are kept as a JSON string inside the cell — nothing is silently dropped. Objects with different keys are fine too: missing values simply produce empty cells.
What the input must look like
Tabular output needs tabular input: the JSON top level should be an array of objects ([ {…}, {…} ]). A single object works and yields one data row. A bare string or number has no tabular shape — the tool tells you instead of guessing. If your records hide deeper inside the document (say under data.results), extract them first with the formatter's JSONPath filter — $.data.results — then convert.
Frequently asked questions
How do I open the result in Excel without broken umlauts?
Use Download (the file is UTF-8) and in Excel choose Data → From Text/CSV, which detects UTF-8 correctly. Double-clicking a .csv sometimes assumes a legacy encoding on Windows — the import dialog avoids that. Google Sheets handles the download correctly either way.
My records have different fields — what happens?
The header becomes the union of all keys in first-seen order, and rows without a given field get an empty cell. No data is lost and no rows are skipped.
What happens to arrays inside a record?
They are written into the cell as a JSON string, e.g. ["COBOL","FLOW-MATIC"]. That keeps the conversion lossless; if you need one row per array element instead, restructure the JSON first (that operation — a join — changes the row count and is a data decision, not a formatting one).
Which delimiter is used, and what about values containing commas?
Standard comma-separated CSV with RFC 4180 quoting: values containing commas, quotes or line breaks are wrapped in double quotes automatically, so the file stays parseable. If your Excel locale expects semicolons, use the import dialog and set the delimiter there.
Is my data uploaded anywhere?
No — the conversion runs entirely in your browser, like every tool on this site. Customer exports and production payloads are safe here.