JSON to CSV Converter
This JSON to CSV converter turns an array of objects into a table: one row per object, with columns taken from the keys in the order they first appear rather than alphabetised, so the output mirrors the source document. Objects with different keys still produce a complete table — every key gets a column and missing cells are left empty, so nothing is dropped. Nested objects and arrays become dot and index columns such as address.city and tags[0], keeping every value addressable, or you can keep each nested value in a single cell as compact JSON. Everything runs in your browser.
How it works
An array of objects becomes one row per object, with columns taken from the keys in the order they first appear. A wrapper object holding a single array is unwrapped automatically, so {"users": [...]} converts the users.
Nested objects and arrays become dot and index columns (address.city, tags[0]) so nothing is lost. Turn off expansion to keep each nested value in a single cell as compact JSON.
The conversion runs entirely in your browser — nothing you paste or upload is sent to a server.
How to convert JSON to CSV
- Paste your JSON into the input on the left — an array of objects converts most cleanly.
- The CSV appears on the right immediately, with a header row taken from the object keys.
- Click Download to save a
.csvfile you can open in Excel, Numbers or Sheets.
How the columns are chosen
Columns come from the keys of your objects, in the order they first appear — not alphabetically — so the CSV mirrors the source document. If some objects have keys others do not, every key still gets a column and the missing cells are left empty, so no data is dropped.
What happens to nested data
CSV is flat and JSON is not, so nesting has to go somewhere. By default a nested object becomes dot-separated
columns (address.city) and array items become indexed columns (tags[0]), which keeps
every value addressable. Turn expansion off and each nested value is written into a single cell as compact JSON
instead — useful when you want one column per top-level key regardless of depth.
Common use cases
- Getting an API response into a spreadsheet for someone who does not read JSON.
- Preparing a bulk import file for a CRM or database that only accepts CSV.
- Producing a quick report from a log export.
Frequently asked questions
How do I convert JSON to CSV?
Paste your JSON into the left panel and the CSV appears on the right immediately, with a header row taken from your object keys. Use the download button to save a .csv file you can open in Excel, Numbers or Google Sheets.
What JSON structure works best?
An array of objects is the natural fit, because each object becomes a row. A wrapper object holding a single array is unwrapped automatically, so {"users": [...]} converts the users rather than producing a one-row table.
How is nested JSON handled?
CSV is flat, so nesting has to go somewhere. By default a nested object becomes dot-separated columns such as address.city, and array items become indexed columns such as tags[0], which keeps every value in its own column. Turn expansion off and each nested value is written into a single cell as compact JSON instead.
What if my objects have different keys?
Every key found anywhere in the array gets a column, and objects that lack a key simply have an empty cell there. No field is dropped just because it is missing from the first record.
Are commas and quotes inside values handled correctly?
Yes. Any value containing a comma, a double quote or a line break is wrapped in quotes, and embedded quotes are doubled, which is the standard CSV escaping every spreadsheet application expects.
Is my JSON uploaded during conversion?
No. The conversion runs entirely in your browser, so nothing you paste is transmitted or stored on a server.
Related tools
JSON to TSV Converter
This JSON to TSV converter produces tab-separated rows you can paste straight into a spreadsheet.
CSV to JSON Converter
This CSV to JSON converter turns CSV rows into a JSON array, keyed automatically by the header row.
JSON Formatter & Beautifier
This JSON formatter beautifies minified or messy JSON online with clean indentation, line numbers, and code folding.