JSON to CSV
Turn JSON into a table you can open in Excel or Google Sheets.
Using toolbook means you agree to our Terms and Privacy Policy.
Paste JSON, or drop a .json file
Every field gets a column, even if it only appears in some records — the rest get an empty cell. One-record-per-line JSON works too, and API responses with the list tucked inside are unwrapped automatically.
Your files stay on your device
How to use it
Paste JSON or drop a file here to get a CSV, with each record as a row and nested data spread into neat columns. Your data stays on your device.
Paste your JSON or drop a file onto the box above, and the CSV appears straight away, ready to download and open in a spreadsheet.
It works out the shape of your data for you — a list of records, an API response with the list tucked inside (like under “data”), or one record per line — and tells you what it found.
Nested data is spread into columns: a “user” with an “email” inside becomes a user.email column. Lists inside records can be joined with commas, given one column each, or kept as-is.
Every field gets a column, even if it only appears in some records. Records missing a field just get an empty cell.
FAQ
How do I convert nested JSON?
Leave “Flatten nested objects” ticked and nested data becomes dotted columns like user.address.city.
My JSON has a “data” list inside. Will that work?
Yes. It finds the list automatically and tells you which key it used.
Does it accept JSONL?
Yes — one record per line works too.
Can I open the result in Excel?
Yes. For accents and leading zeros, CSV to Excel gives an even better result.
Can anyone else see my JSON?
No. It’s converted on your device and never sent anywhere.
How it worksFor the curious
Shape detection recognises an array of records, an object wrapping a single array (the common REST shape — the key used is named), an object keyed by id, and newline-delimited JSON (tried when the input does not parse as one document).
Flattening produces dotted column names per leaf value; turning it off keeps each nested value as JSON text in one cell. Array handling offers join, one column per index, or JSON text.
Columns are the union across every record rather than the first record’s keys. Values containing commas, quotes, or line breaks are quoted per RFC 4180 so the file reads back correctly.