How to use
- Click Paste to load JSON from your clipboard.
- Set Records to Auto, or select a detected array.
- Choose a Delimiter. Comma , is the default. Select Tab to download a .tsv file instead.
- For input over 1 MB, click Convert or press Ctrl/Cmd+Enter. Smaller input converts automatically as you type.
- Click Download to save the result.
Examples
Export contacts with commas in names
[{"id":1,"name":"Ann Miller"},{"id":2,"name":"Bob, Jr."}]id,name 1,Ann Miller 2,"Bob, Jr."
Flatten customer addresses from an API response
{"meta":{"total":2},"data":[{"id":101,"addr":{"city":"Seattle","zip":"98101"},"tags":["retail","newsletter"]},{"id":102,"addr":{"city":"Boston","zip":"02108"},"tags":["wholesale"]}]}id,addr_city,addr_zip,tags 101,Seattle,98101,retail; newsletter 102,Boston,02108,wholesale
Convert JSON Lines logs to TSV
{"timestamp":"2026-10-05T09:15:00Z","path":"/checkout","status":200}
{"timestamp":"2026-10-05T09:16:00Z","path":"/account","status":401}timestamp path status 2026-10-05T09:15:00Z /checkout 200 2026-10-05T09:16:00Z /account 401
FAQ
How do I open the CSV in Excel without broken characters?
Turn on Excel-compatible (UTF-8 BOM) before downloading. It adds a UTF-8 BOM to the downloaded file only, not to Copy or the CSV view. The tool exports CSV or TSV, not XLSX.
Why are some cells empty?
Columns include keys found across all records, in order of first appearance. A record missing a key gets an empty cell in that column; JSON null also becomes an empty cell when Null as is set to Empty cell.
Can I convert a large JSON file?
Uploaded files must be 50 MB or smaller. Your browser can still run out of memory while processing, so split the file if that happens.
Is my JSON uploaded to a server?
The tool parses and converts your JSON in your browser without uploading it. The page uses Google Analytics for tool events, but those events contain no JSON or CSV.
Will long numbers keep their precision in the CSV?
The converter preserves numbers exactly as written, including 20-digit IDs, 1.0 and 1e5. This applies to the CSV text; it does not control how a spreadsheet interprets those values.