JSON to CSV Converter
Convert JSON arrays to CSV instantly — and CSV back to JSON. Handles nested objects with dot-notation flattening (user.name), comma / semicolon / tab delimiters, live table preview and Excel-safe UTF-8 BOM download. 100% browser-side.
JSON to CSV Converter Tool
Rate this tool
Nested flattening, semicolon delimiter and live preview — features most JSON converters skip
Most free JSON to CSV tools fail on nested data or output everything into one column. This tool handles nested objects recursively using dot notation, supports European semicolon delimiters for Excel, shows a live table preview before you download, and converts CSV back to JSON too.
How to convert JSON to CSV
How this compares to other JSON to CSV converters
| Feature | LazyTools | CSVJSON | data.page | Konklone |
|---|---|---|---|---|
| Nested JSON flattening | Yes — any depth | Yes — optional | Yes | No |
| Semicolon delimiter | Yes | Yes | No | No |
| Tab / TSV delimiter | Yes | Yes | No | No |
| UTF-8 BOM for Excel | Yes — toggleable | Yes | No | No |
| Live table preview | Yes — 100 rows | No | No | No |
| Bidirectional (CSV → JSON) | Yes — same page | Separate tool | No | No |
| 100% client-side | Yes | No — server | Yes | Yes |
| Type coercion (CSV → JSON) | Yes — numbers + bool | No | No | No |
JSON to CSV conversion rules
| JSON input | CSV output | Notes |
|---|---|---|
| {"name":"Alice"} | name column | Simple key becomes column header |
| {"user":{"name":"Alice"}} | user.name column | Nested object flattened with dot |
| {"tags":["a","b","c"]} | a;b;c in one cell | Array of primitives joined |
| {"items":[{...}]} | JSON string in cell | Array of objects serialised |
| null value | (empty cell) | Null becomes empty string |
| true / false | true / false | Booleans written as text |
| Value with comma | "value,here" | Wrapped in quotes — RFC 4180 |
| Value with quotes | say ""hi"" | Quotes doubled inside quoted field |
| Value with newline | "line1\nline2" | Quoted, newline preserved |
JSON to CSV — A Complete Guide for Developers and Data Analysts
JSON (JavaScript Object Notation) is the standard format for API responses, configuration files and data interchange in modern web development. CSV (Comma-Separated Values) is the standard for spreadsheets, database imports and data analysis tools. Converting between them is one of the most common data wrangling tasks any developer or analyst encounters — and one of the most error-prone when done with naive tools.
Why JSON to CSV is harder than it looks
A flat JSON array of simple objects converts trivially: each key becomes a column, each object becomes a row. The problems start with nested objects. Real API responses are almost never flat — user records contain address objects, order records contain line-item arrays, analytics events contain nested properties. A naive converter dumps the entire nested object as a raw JSON string in a single cell. Correct conversion requires recursively flattening nested structures into separate columns with meaningful names.
How dot-notation flattening works
The dot notation approach recurses through each JSON object, building column names by joining parent and child keys with a dot. An object like {"user":{"name":"Alice","address":{"city":"London"}}} produces columns user.name and user.address.city. This is predictable, reversible and widely understood by data tools. Arrays of simple values are joined with semicolons into a single cell rather than creating unpredictable numbers of new columns.
The semicolon delimiter — a critical European Excel requirement
In France, Germany, Spain, Italy and most of continental Europe, Microsoft Excel uses semicolons as the CSV field separator by default — because those locales use a comma as the decimal separator. A CSV exported with commas will appear as a single column in French Excel, requiring a manual Text to Columns import. Selecting the semicolon delimiter produces a file that opens correctly in European Excel without any additional steps. This is one of the most overlooked issues in cross-border data sharing.
UTF-8 BOM — why Excel needs it
Without a Byte Order Mark at the start of the file, Excel on Windows defaults to the system locale encoding. Any character outside ASCII becomes garbled. Adding the UTF-8 BOM signals correct encoding, and all characters display correctly. Most other tools — text editors, databases, Linux tools — ignore or correctly handle the BOM, so enabling it by default is the safer choice for Excel compatibility.
RFC 4180 — the CSV standard most parsers get wrong
RFC 4180 defines how CSV fields should be quoted. A field containing the delimiter must be wrapped in double quotes. Double quotes inside a field must be doubled. A field containing a newline must also be quoted — meaning a valid CSV row can span multiple text lines. Naive parsers that split on newlines then split on commas fail on all these cases. The CSV to JSON parser in this tool uses a character-by-character state machine that handles all edge cases correctly.