What is JSON to CSV conversion?
JSON is API-native; CSV is spreadsheet-native. Converting lets analysts open API responses in Excel or Sheets, migrate data to legacy systems, and shrink payloads. The hard part, flattening nesting and reconciling non-uniform keys, is exactly what most converters skip, so this one flattens to dot-notation columns and builds the header from the union of all keys.
Edge cases & gotchas
- Nested arrays: scalar arrays flatten to indexed columns (
tags.0,tags.1) or a joined cell; arrays of objects may need explode/pivot. - Values containing commas, quotes, or newlines are wrapped in double quotes with internal quotes doubled (
""). - Column order derives from the union of keys in first-seen order, not guaranteed to match every object.
- Nulls render as empty cells by default, not the literal
null. - Newlines inside a field can break naive CSV readers; quoting keeps them in one cell.
- Non-array or single-object input is treated as a one-row table.
Flattening reference
| JSON shape | CSV result |
|---|---|
| Nested object | parent.child columns |
| Array of scalars | key.0, key.1 … |
| Missing key | blank cell |
null | empty cell |
How to use
- Paste a JSON array of objects into the Input pane, upload, or load text.
- If the array is nested inside a wrapper, target it (e.g.
data.results). - Pick a delimiter (comma, semicolon, or tab) and whether to include the header row.
- Convert: nested objects flatten to
parent.childcolumns; the header is the union of all keys. - Copy the result or download it as
.csv.
Examples
Flat array → table
[{ "id": 1, "name": "Ann" }, { "id": 2, "name": "Bob" }]id,name 1,Ann 2,Bob
Nested objects → dot-notation columns
[{ "id": 1, "name": "Ann", "address": { "city": "NYC", "zip": "10001" } }]id,name,address.city,address.zip 1,Ann,NYC,10001
Missing-key union (uneven objects)
[{ "id": 1, "name": "Ann" }, { "id": 2, "phone": "555" }]id,name,phone 1,Ann, 2,,555
FAQ
Why convert JSON to CSV?
To open API or NoSQL data in Excel, Google Sheets, or BI tools that require tabular input.
How are nested objects handled?
Flattened into dot-notation columns (address.city) rather than stringified into a single cell.
What happens when objects have different keys?
The header row is the union of every key seen; records missing a key get a blank cell.
Which delimiter for Excel?
Comma works for US locales; use semicolon for many European Excel installs.
Is my data uploaded?
No. It runs in your browser; verify zero network calls in DevTools.
Why is my data only partly showing?
Your array is likely nested inside a wrapper object. Point the tool at the array (e.g. response.data). Need the reverse trip? Try CSV to JSON.