JSON → CSV
Turn an array of objects into a CSV table.
Private by design. Your input never leaves this browser. Conversions run locally on your device.
What this tool handles
- Columns are the union of every key across all records, in first-seen order.
- Records missing a key get an empty cell rather than a shifted row.
- Nested objects and arrays are written as JSON text inside a single cell.
- The delimiter can be a comma, semicolon, tab or pipe, and the header row can be switched off.
- Output always uses "\n" line endings.
Example
JSON array
[{"id":1,"name":"Ada"},{"id":2,"name":"Linus","role":"maintainer"}]
CSV
id,name,role
1,Ada,
2,Linus,maintainer
When you would use it
- Opening an API response in a spreadsheet — Paste the array a REST endpoint returned and get a table Excel, Sheets or Numbers will open directly. Pick the semicolon delimiter if your locale of Excel expects one.
- Sending results to someone without a JSON viewer — A dump from a log search or an admin endpoint becomes rows a colleague can sort and filter with no tooling beyond a spreadsheet.
- Preparing a file for a bulk import — Import forms and data-loading tools usually accept CSV only, so a JSON fixture has to be flattened first. A single object is written as a one-row table.
Common questions
How are commas, quotes and line breaks escaped?
A value is wrapped in double quotes when it contains the delimiter, a double quote or a line break, and any double quote inside it is doubled. With the semicolon or tab delimiter selected, a comma inside a value needs no quoting at all.
What happens to a JSON null?
It becomes an empty cell, which is indistinguishable from an empty string or from a key the record never had. Substitute a sentinel value before converting if that difference matters downstream.
Does the input have to be an array of objects?
A single object is accepted and becomes one row, and an envelope such as {"people": [ ... ]} whose one top-level key holds the array is unwrapped for you. An array of strings or numbers is refused, and the error names the record that is not an object.
Are values reformatted on the way out?
No. Booleans are written as true and false, and strings are copied verbatim, so "007" keeps its leading zeros and a date stays in whatever format the JSON already used.
Related tools
- CSV → JSON — Parse CSV or TSV into JSON, with delimiter detection and optional type coercion.
- Convert any format — Pick an input format and an output format and convert between any pair.
- JSON → YAML — Convert JSON to readable YAML with configurable indentation.
- YAML → JSON — Parse YAML and emit pretty-printed JSON.
- JSON → TOML — Convert a JSON object to TOML.
- TOML → JSON — Parse TOML configuration into JSON.