JSON to CSV
Flatten JSON records into a CSV table.
JSON input
CSV output
About JSON to CSV
Convert an array of JSON objects into CSV, flattening nested structures into dotted column names and unioning keys across records so every field gets a column.
JSON is unreadable to most people who need to read it, and CSV is what a spreadsheet, a finance system or a colleague will accept.
Flatten an array of objects into a table.
- Processed on your deviceEverything you open or type here is handled by this page and never uploaded anywhere.
- No queue, no limitsNothing waits on a server, so the only limit is your own hardware.
- No account neededNo sign-up and no email address required.
How JSON to CSV works in your browser
The union of all keys across every object forms the header row, so an object missing a field produces an empty cell rather than shifting the columns out of alignment — which is what happens when a converter takes its headers from the first record only.
Nested objects are flattened into dotted column names, so an address object with a city inside becomes an address.city column. Keeping the full path in the header means a value can still be traced back to where it came from.
Output is quoted and escaped properly: fields containing commas, quotes or line breaks are wrapped and their quotes doubled, so the file parses correctly at the other end rather than falling apart on the first address field.
When to use it
Loading structured data into a system whose only import path is CSV. Producing a flat file for a bulk upload where nesting has to be resolved first. Getting a dataset into a form a database import or a shell tool will accept. Preparing an extract for a finance or billing system that will not read JSON.
Frequently asked questions
What happens to nested objects?
They are flattened into dotted column names, so nested structure becomes a set of ordinary columns a spreadsheet can open.
My records have different fields — is that a problem?
No. Keys are unioned across all records so every field gets a column, left empty for records that lack it.
Does it handle JSON Lines?
Yes. A .jsonl file with one record per line converts the same way as a JSON array.