JSON to CSV
This JSON to CSV converter turns an array of objects into CSV you can open in Excel or WPS. Columns are the union of all rows, nested objects flatten to dot-separated column names, and comma, semicolon, pipe and tab delimiters are supported. Conversion runs locally in your browser and nothing is uploaded.
How to use it
- 1
Paste a JSON array
The input must be an array of objects (such as [{ "name": "Alex" }, ...]); each object becomes one CSV row.
- 2
Choose a delimiter
Comma is the default; switch to semicolon for some regional Excel setups, or tab for tab-separated data.
- 3
Download or copy the CSV
Copy the result and save it as a .csv file to open in Excel, Numbers or WPS.
- 4
Check the header row
Confirm the union of columns matches the fields you expect across all rows.
Key features
Automatic column union
When objects have differing fields, the header is the union of every field and missing cells are left empty.
Nested objects flattened
{"address":{"city":"Berlin"}} becomes an address.city column, so deep fields are visible in the table.
Automatic quoting
Cells containing commas, quotes or line breaks are wrapped in double quotes automatically for correct CSV syntax.
Scalar arrays in one column
A plain-value array such as [1,2,3] is emitted as a single value column instead of failing.
Multi-delimiter support
Comma, semicolon, pipe and tab delimiters are all available to suit different spreadsheet setups.
Local and private
Conversion runs in your browser and the data is not uploaded.
Common errors & troubleshooting
- ! CSV can only express a table, so the root must be an array. Wrap a single object in [] first, or use the JSON to Properties tool instead.
- ! An empty array provides no column names, so keep at least one object element.
- ! When a field value is an array or a deep object, the cell holds its JSON text — no information is lost, but it is not directly editable in the table.
- ! Pick a delimiter that matches how the spreadsheet is configured to avoid a single-column import.
Frequently asked questions
How is nested JSON converted to CSV?
Objects are flattened recursively with dots joining key names, so {user:{name:"Alex"}} produces a column named user.name. When a value is itself an array, the cell stores its JSON text.
What if Excel shows garbled text?
The tool outputs standard UTF-8. Some older Excel versions do not detect UTF-8 CSV automatically, so use Data → From Text and pick UTF-8, or switch to a semicolon delimiter.
Can rows with different fields be converted?
Yes. The header is the union of all row fields, missing fields are left empty and the column order follows first appearance.
Is my data uploaded?
No. Conversion happens locally in your browser.
Related tools
CSV to JSON
Convert CSV exported from Excel or WPS into an array of objects. The first row becomes the field names, numbers, booleans and null are inferred, and the delimiter is auto-detected. Runs locally.
JSON Formatter
Format, beautify and validate JSON in your browser. Errors point to the exact line and column, and you can indent with 2 spaces, 4 spaces or a tab.
JSON to XML
Convert JSON to well-formed XML with an XML declaration and indentation. The root element and array item tag names are configurable, and arrays become repeated same-name elements. Runs locally.
JSON to Properties
Convert JSON to Java .properties key-value config. Nested objects flatten to dotted paths, values are escaped to the java.util.Properties rules, and non-ASCII text is written as UTF-8. Runs locally.