JSON to CSV Converter
Turn a JSON array of objects into CSV for Excel, Google Sheets or a database import. Nested objects are flattened into dotted column names (address.city) and every key across all rows becomes a column.
When does a CSV field need quotes?
RFC 4180 has one core rule: if a field contains the delimiter, a double quote or a line break, wrap it in double quotes and double any quotes inside. Type a value and watch the row that gets written.
1,"Portland, OR",active
- contains the delimiter (,)
- contains a double quote, so each " is doubled to ""
- contains a line break
- has leading/trailing spaces (quoting keeps them; not required by RFC 4180, but many parsers trim)
Quotes required.
Written row, exactly: 1,"Portland, OR",active
How it works
Each object in the array becomes a row. The header is the union of keys across all objects, so rows missing a key get an empty cell.
Nested objects become dotted columns; arrays can be kept as JSON text or joined. Values containing commas, quotes or line breaks are quoted per RFC 4180.
Everything above runs in JavaScript inside this tab. Your data is not uploaded. Inputs are remembered in this browser only so they survive a reload; you can switch that off on the privacy page.
Questions
My JSON is an object, not an array. Will it work?
Yes. If the top level is an object that contains one array of objects (like {"data": [...]}) that array is used. A single object becomes one row.
Will Excel open the file correctly?
Use the "Excel-friendly" option: it adds a UTF-8 byte order mark so accented characters display correctly, and you can pick semicolons for locales that expect them.
Is my JSON sent to a server?
No. Conversion happens in your browser. The only network request is the optional AI explanation when your input has an error and you ask for it.