Convert JSON to CSV Online — Free
Convert JSON to CSV online for free — auto-detects keys, flattens nested objects, supports comma/tab/semicolon delimiters. Browser-based, no signup.
How to convert JSON to CSV
- 1
Add your JSON file
Drop or select a .json file. Files up to 50MB process locally in your browser — nothing uploaded.
- 2
Run the conversion
Your JSON is parsed in the browser, object keys become column headers, and each element of the root array becomes one CSV row. Nested objects flatten using dot notation (user.address.city), and array values join with semicolons inside a single cell.
- 3
Download your CSV
One click saves the result as a .csv file. Your original file stays on your device.
Why convert JSON to CSV?
CSV is the universal interchange format for spreadsheets, databases, and data analysis tools. JSON is great for APIs but Excel, Google Sheets, PostgreSQL COPY, Pandas read_csv, R, and most ETL tools expect tabular input. Converting lets you take API responses straight into analysis, reporting, or bulk-load workflows.
Common JSON to CSV use cases
- Importing a REST API response (list of users, orders, or events) into Excel or Google Sheets for ad-hoc analysis
- Loading a JSON export from MongoDB, Firebase, or a NoSQL store into a SQL database via bulk import
- Preparing data for visualization tools like Tableau, Looker, or Power BI that accept CSV but not JSON directly
- Sending structured data to a non-technical colleague who works in spreadsheets and can't parse JSON
What file size to expect
A 10,000-record JSON array of user objects (name, email, address, 3 nested preferences) weighs roughly 4.5 MB with JSON's verbose syntax. The same data as CSV is typically 1.8-2.2 MB — about 2× smaller because CSV doesn't repeat field names, quotes, colons, and braces on every row.
Technical notes: JSON → CSV
The converter expects a root-level JSON array of objects: [{...}, {...}]. Nested objects flatten to dot-notation columns; deeply nested arrays within objects are serialized as semicolon-delimited strings within a single cell. Booleans become 'true'/'false'; null becomes empty. Numbers keep their precision without scientific notation unless very large or small. If objects have inconsistent keys, the CSV header is the union of all keys, with empty cells where a key is missing. Output follows RFC 4180 — fields containing commas or newlines are double-quoted.
Compatibility and browser support
CSV output is parseable by Excel, Google Sheets, LibreOffice Calc, PostgreSQL COPY, MySQL LOAD DATA INFILE, Pandas, R, and every modern CSV library. Choose the semicolon delimiter for European locales (where comma is a decimal separator).
JSON vs CSV
| JSON | CSV | |
|---|---|---|
| File size | Compact | Smallest tabular format |
| Quality | Lossless data structure | Flat tabular |
| Transparency | N/A | N/A |
| Browser / app support | All programming languages | Universal (Excel, databases, scripts) |
| Best for | APIs, configs, structured data | Spreadsheets, data interchange |
Related conversions
Frequently Asked Questions
What JSON shape works?
A root array of objects: [{name: 'Ada', age: 36}, ...]. Each object becomes a row. If your JSON wraps the array in a property (e.g., {data: [...]}), extract the inner array first.
How are nested values handled?
Flattened with dot notation — user.address.city becomes a single column. Arrays of primitives become semicolon-joined strings; arrays of objects need manual flattening upstream.
Comma, tab, or semicolon?
All three delimiters are supported via the dropdown. Semicolon is preferred in European locales where comma is used as the decimal separator.
What about mismatched keys across objects?
The header is the union of all keys seen. Missing values are left blank in that row's cell.
Will numbers keep their precision?
Yes — JSON's native number type is preserved exactly. Scientific notation is avoided unless the number is very large or very small (beyond 15 decimal digits).
How large a JSON can I convert?
Tested up to 50MB. Everything runs in your browser, so very large files use browser memory — close unused tabs if you hit a ~1GB ceiling on a memory-constrained device.