JSON to CSV Converter
Paste a JSON array of objects and get a formatted CSV with a header row. Download the result as a .csv file. Everything runs locally in your browser.
CONVERT
Accepts a JSON array of objects. Columns are the union of all keys. Nested objects and arrays are written as JSON text.
How it works
JSON.parse reads your input, which must be an array of objects. The columns are every key found in any object, in the order they first appear, so a key missing from the first object still gets its column. Each object becomes one row: a missing key leaves an empty cell, nested objects and arrays are written as JSON text, and any value containing a comma, a double quote, or a line break is wrapped in double quotes with internal quotes doubled, and rows are separated by line feeds.
Example
Columns come from every key; missing keys leave empty cells and arrays become JSON text:
[{"id":1,"name":"Ann"},{"id":2,"tags":["x","y"]}]id,name,tags
1,Ann,
2,,"[""x"",""y""]"Processing runs in your browser
All conversion happens inside your browser tab using JavaScript. Our servers are not involved at any point.
Technical specification
CSV quoting follows the conventions in RFC 4180 (IETF, 2005): a field that contains a comma, a double quote, or a line break is wrapped in double quotes, and a double quote inside it is written twice.
- Standard
- RFC 4180. Common Format and MIME Type for Comma-Separated Values (CSV) Files
- Delimiter
- Comma only
- Output
- JSON array of objects, or CSV with LF line endings
- Download
converted.jsonorconverted.csv
Related operations
After converting, pretty-print or minify the JSON output. If your data starts as YAML, turn it into JSON first. To drop repeated lines from an export before converting, remove duplicate lines; the first occurrence of each line is kept, so the header row stays on top, and matching ignores letter case, so rows that differ only in case count as duplicates.
Frequently asked questions
- What JSON structure does this accept?
- An array of objects: [{"a":1,"b":2},{"a":3,"b":4}]. The columns are every key found in any object. Nested objects and arrays are not flattened; they are written as JSON text in the cell.
- Is my JSON data uploaded?
- All conversion runs entirely in JavaScript inside your browser tab.
- What happens to values with commas or quotes?
- Values containing commas or quotes are automatically wrapped in double quotes and any internal quotes are escaped.
- Can I download the output?
- Yes. Click the Download button to save the result as a .csv file.
Last reviewed September 30, 2026
Other pages for this tool
Related tools
- Background reading: Complete guide to data tools
- Step by step: Turn a CSV into clean JSON for an API