JSON to CSV converter
Convert a JSON array of objects into CSV your spreadsheet can open. Nested keys flattened, quoting handled, nothing uploaded.
About this converter
JSON is the format APIs speak; CSV is the format the person asking you for the data actually wants, because they are going to open it in Excel. Converting between them sounds trivial until you hit the two problems that make it not trivial: the objects in your array may not all have the same keys, and values may themselves be nested objects or arrays with no natural flat representation.
This converter handles both. It scans every object in the array to build the full union of keys, so a field present in only some records still gets its own column rather than being silently dropped. Nested objects are flattened with dot notation, so a user object containing a name becomes a user.name column. Arrays are serialised into the cell rather than exploded into extra rows, which keeps the row count matching the record count.
Output is RFC 4180 compliant: any value containing a comma, a double quote or a newline is quoted, and internal quotes are doubled. That is what makes the result open cleanly in Excel, Sheets, pandas and Postgres COPY instead of shearing into the wrong columns.
As with everything here, the work happens in your browser. Your JSON is not uploaded and no copy is kept.
Frequently asked questions
- What happens to nested objects?
- They are flattened using dot notation, so a city inside an address inside a user becomes a user.address.city column.
- My objects have different keys. Will columns be lost?
- No. Every key across every object becomes a column, and records missing that key get an empty cell.
- Can I convert a single JSON object rather than an array?
- Yes. It is treated as an array of one, producing a header row and a single data row.