Free Tools /Development
JSON ⇄ CSV Converter
Paste either format, get a clean, correctly-escaped conversion in the other, ready to paste into the next step of your workflow.
How this tool works
Auto-detects direction
Paste either format and the tool detects whether it is JSON or CSV, then converts to the other automatically. You can also force a direction with the toggle.
Handles nested-safe flattening
A JSON array of flat objects converts to CSV columns directly. Nested objects are flattened with dot notation (e.g. address.city) so no data is silently dropped.
Proper CSV quoting
Fields containing commas, quotes, or line breaks are correctly quoted and escaped in both directions, avoiding the silent corruption that naive split(",") conversions produce.
Frequently asked questions
What JSON structure does this expect?
An array of flat or lightly-nested objects, the most common shape for tabular data (e.g. exported records, API list responses). A single deeply nested object or a non-array JSON value cannot convert to a meaningful CSV since CSV is inherently row-based.
What happens to nested objects when converting JSON to CSV?
They are flattened using dot notation, so { "address": { "city": "Paris" } } becomes a column named address.city. Arrays inside objects are converted to a JSON string within that cell rather than expanded into new columns.
Does converting CSV to JSON guess data types?
Yes, cells that look like numbers or booleans (true/false) are converted to those types automatically; everything else stays a string. If you need every field to remain a string regardless of appearance, you will need to adjust the output manually after conversion.
Is there a size limit?
The conversion runs entirely in your browser, so the practical limit is your device's memory rather than a fixed cap. Very large files (tens of thousands of rows) may feel slow in the browser tab; for genuinely large datasets, a dedicated ETL step in an automation platform is more appropriate.
Does this tool store or transmit my data?
No. All parsing and conversion happens client-side in JavaScript. Nothing you paste is sent to a server or stored anywhere.
More free tools
Cron Expression Builder & Explainer
Turn any cron expression into plain English, or build one from scratch.
n8n Workflow JSON Validator
Paste your workflow JSON, catch orphaned connections and missing credentials before you import it.
n8n Expression Tester
Test {{$json.field}} style expressions against real sample data and see the exact output before pasting into n8n.