JSON to CSV
Turn a list of JSON records into a spreadsheet-ready CSV.
- Runs in your browser — nothing you enter is uploaded
- No sign-up, no quotas, free to use as often as you like
How it works
JSON is what an API hands you; CSV is what a spreadsheet will open. Getting from one to the other is a constant small chore, and it is usually done by pasting a payload into a random website — payloads that routinely contain customer names, email addresses and order details. This converts in the page, so the data stays with you.
What shape it expects
An array of objects, which is what a list endpoint normally returns. The column headings are taken from the keys, gathered across every record, so rows with missing fields still line up correctly. A single object is treated as a one-row table.
Quoting is handled properly
Values containing commas, quotation marks or line breaks are wrapped in quotes and internally escaped, following the same convention spreadsheets expect. This is the part hand-rolled conversions almost always get wrong, and it is why an address column so often destroys a CSV.
Nested values
A value that is itself an object or an array is written as JSON text inside the cell, because CSV is flat and has nowhere else to put it. Flatten the structure first if those fields matter.
Choosing a separator
Comma is standard. Semicolon is what Excel expects in locales where the comma is the decimal separator — if your spreadsheet opens the file with everything crammed into one column, this is usually why. Tab is the safest when the data itself is full of punctuation.
JSON to CSV — questions
What JSON does it accept?
An array of objects, or a single object. Columns are taken from the keys across all records.
Will commas inside my data break the CSV?
No. Values containing commas, quotes or newlines are quoted and escaped correctly.
Why does Excel put everything in one column?
Your locale probably expects semicolons. Switch the separator to semicolon and it will open correctly.
Is my data uploaded?
No. The conversion runs entirely in your browser.