JSON to CSV Converter
Updated Free mock REST & WebSocket APIs
Paste a JSON array (or an API response that contains one) and get a clean CSV you can open in Excel, Google Sheets or Numbers. Nested objects become dot-path columns like address.city, and every field is quoted correctly.
| id | name | address.city | address.zip | tags | active | note | |
|---|---|---|---|---|---|---|---|
| 1 | Ada Lovelace | ada@example.com | London | W1 | math; poet | true | |
| 2 | Grace Hopper | grace@example.com | New York | 10001 | navy | false | |
| 3 | José "Pepe" Núñez | jose@example.com | Sevilla, ES | true | Line one line two |
🔒 Runs in your browser — nothing you paste is uploaded.
How to convert JSON to CSV
- Paste your JSON, drop a .json file onto the box, or click Open file.
- Pick a delimiter (comma for most tools, semicolon for European Excel, tab for TSV) and how arrays inside a row should be written.
- Check the preview table, then copy the CSV or download it. Keep “Add UTF-8 BOM” on if you'll open it in Excel.
How nested JSON becomes columns
CSV is flat, so every nested value gets a column named after its path. Columns appear in the order keys are first seen, and records that lack a key just get an empty cell.
| JSON | Column | Cell |
|---|---|---|
{"address": {"city": "London"}} | address.city | London |
{"tags": ["a", "b"]} (join) | tags | a; b |
{"tags": ["a", "b"]} (one column each) | tags.0, tags.1 | a, b |
{"note": null} | note | (empty) |
If your JSON is an object that wraps the records — {"data": [...], "meta": {...}}, as most APIs return — the converter finds the array and uses it as rows.
CSV quoting rules (RFC 4180)
A field is wrapped in double quotes when it contains the delimiter, a double quote or a line break, and quotes inside it are doubled: She said "hi" becomes "She said ""hi""". Fields with leading or trailing spaces are quoted too, so spreadsheets don't trim them. These are the rules from RFC 4180, which Excel, Sheets, pandas and every major CSV library follow.
Opening the CSV in Excel
Excel guesses the file's encoding; without a byte order mark it often shows é instead of é. The download adds a UTF-8 BOM by default to prevent that. In countries where the decimal separator is a comma (France, Germany, Brazil…), Excel expects semicolons — choose that delimiter if all your data lands in column A.
Related tools
Frequently asked questions
Is my JSON uploaded anywhere?
No. The conversion runs entirely in your browser with JavaScript, so your JSON never leaves your device and isn't logged or stored.
Can it convert nested JSON to CSV?
Yes. Nested objects are flattened into dot-path columns (user.address.city), and arrays can be joined into one cell, split into indexed columns (tags.0, tags.1) or kept as JSON text.
Why is all my data in one column in Excel?
Your Excel uses a semicolon as list separator (common where the decimal mark is a comma). Pick the Semicolon delimiter and download again, or use Data → From Text/CSV and choose the comma.
Is there a size limit?
Files up to 25 MB can be opened; the conversion is bounded only by your device's memory. The preview shows the first 50 rows, but the download contains everything.
Can I go back from CSV to JSON?
Yes — use the CSV to JSON converter. Dot-path headers like address.city are rebuilt into nested objects.
Your business here? Sponsor this tool from $16/week. See placements