How the conversion works
The converter scans every object in your JSON array to build a complete column list. This means rows with different keys are handled correctly — missing values become empty cells rather than shifting columns out of place.
Nested objects are flattened using dot notation: {"address":{"city":"London"}} becomes a column named address.city. Arrays within objects (e.g. a tags field) are joined into a single cell with semicolons: tag1;tag2.
When to use each delimiter
- Comma — standard CSV, works with most databases and import tools.
- Tab (TSV) — paste directly into Excel or Google Sheets without an import dialog.
- Semicolon — common in European locales that use commas as decimal separators.
- Pipe — safe fallback when values may contain commas or semicolons.
Enable Quote all fields to wrap every value in double quotes — useful for strict CSV parsers or values containing special characters. By default only fields that require quoting are quoted.
Frequently Asked Questions
How do I convert JSON to CSV?
Paste your JSON array of objects into the input pane. The converter immediately produces a CSV with one column per key and one row per array element. Click Download to save the file or Copy to paste it into a spreadsheet.
How are nested objects handled?
Nested objects are flattened using dot notation. For example, {"address": {"city": "London", "zip": "EC1"}} produces two columns: address.city and address.zip. This matches the behavior of Python's pandas.json_normalize() and jq.
How are arrays inside objects handled?
Array values such as "tags": ["api", "auth"] are joined into a single CSV cell separated by semicolons: api;auth. If you need each element in its own row, restructure the JSON before converting.
What if rows have different keys?
The tool scans all rows to collect every key that appears anywhere in the array. Rows missing a key get an empty cell in that column. This correctly handles inconsistent API responses where optional fields are omitted rather than null.
Which delimiter should I use?
Use Comma for most spreadsheets and database imports. Use Tab to paste directly into Excel or Google Sheets without import dialogs. Use Semicolon if your locale uses commas as decimal separators. Use Pipe for data that may contain commas or semicolons in values.
When should I enable quote-all fields?
By default only fields that contain the delimiter, a newline, or a double-quote are quoted per RFC 4180. Enable Quote all fields to wrap every value in double quotes — useful for maximum compatibility with strict CSV parsers.
Does this tool send my data to a server?
No. All conversion runs entirely in your browser using JavaScript. Your JSON is never uploaded or transmitted — it never leaves your device. This makes it safe for JSON files containing API keys, credentials, or other sensitive data.
How do I convert JSON to CSV in Python?
With pandas: import pandas as pd; df = pd.json_normalize(data); df.to_csv('output.csv', index=False). With stdlib only: import json, csv; data = json.load(open('in.json')); w = csv.DictWriter(open('out.csv','w'), fieldnames=data[0].keys()); w.writeheader(); w.writerows(data). The stdlib approach does not flatten nested objects.