JSON to CSV
Convert JSON arrays to CSV format. Handles nested objects, custom delimiters, and quoted fields — all in your browser, no upload, instant results.
About the JSON to CSV Converter
This JSON to CSV converter runs entirely in your browser. Paste a JSON array of objects into the box above, pick a delimiter, choose whether to include a header row, and click Convert. The result appears as CSV text. Nothing is uploaded to a server — the conversion happens instantly with JavaScript on your device.
How conversion works
- Input shape — The JSON must be an array of objects. Each object becomes a CSV row.
- Headers — Keys are taken from the first object. When the header row is enabled, those keys form the first CSV row.
- Nested objects — Nested objects are flattened with dot notation (for example,
address.city). - Escaping — Values containing the delimiter, double quotes, or newlines are wrapped in double quotes, and any internal quotes are doubled (
""). - Arrays — Array values are serialized as JSON text so they remain readable inside a single cell.
Handling nested data
Real-world JSON is often nested. This converter flattens nested objects into dot-separated keys, so an object like {"user":{"name":"Jane"}} becomes a column named user.name. This keeps the output flat and compatible with spreadsheets while preserving the structure information in the key names.
Frequently asked questions
Does this tool upload my JSON? No. All conversion happens locally in your browser. Your data never leaves your device.
What if my JSON is not an array? The converter expects an array of objects. If the input is a single object or invalid JSON, an error message is shown.
How are missing keys handled? Each row uses the union of keys found across objects. Missing values become empty cells, so rows stay aligned.
Are numbers and booleans preserved? They are converted to their JSON text representation (for example, true or 30), which is also valid CSV content.