Convert JSON to CSV online for free. FilZap flattens API responses, exports, and log dumps into a clean spreadsheet-ready CSV you can open directly in Excel, Google Sheets, or any data tool — fast, private, and with no signup.
An array of objects is the ideal input: each object becomes a row and each key becomes a column. Nested objects are flattened using dot notation, so {"user": {"name": "Ada"}} becomes a column headed user.name. Keys missing from some records simply leave an empty cell rather than breaking the row alignment, which means slightly inconsistent API output still converts cleanly.
Real API payloads are rarely a bare array. If your file is an object wrapping the records — the familiar {"data": [ ... ]} or {"results": [ ... ]} shape — FilZap finds the list inside and converts that, so you do not have to hand-edit the file first. A single standalone object converts to a one-row CSV. The only hard requirement is that the file's root is an object or an array.
Output is UTF-8 encoded standard CSV with a header row. Google Sheets and Numbers read it correctly on import. Excel is the one to watch: double-clicking a UTF-8 CSV can garble accented characters and turn long numeric IDs into scientific notation, so use Data → From Text/CSV and set the encoding to UTF-8, marking ID columns as text.
An array of objects converts most cleanly — one row per object. An object wrapping a list, such as {"data": [...]}, is detected automatically, and a single object becomes a one-row CSV. The root must be an object or an array.
They are flattened into dot-notation columns, so a nested name field under user becomes the column user.name. Deeper nesting keeps chaining in the same way.
Yes, the output is standard CSV. For best results in Excel use Data → From Text/CSV and choose UTF-8 encoding, which prevents accented characters from garbling and stops long IDs turning into scientific notation.
A list nested inside a record cannot become a single clean column, so it is preserved as its text representation in one cell. If you need those values as separate rows, flatten that level in your export before converting.
The CSV includes a column for every key seen across all records, and any record missing a key gets an empty cell there. Rows stay correctly aligned.
Not directly — the file has to be valid JSON as a whole. Wrap your lines in square brackets separated by commas to make it a proper array, then upload it.