Free tool · nothing is uploaded
JSON to CSV
Paste a JSON array of objects, or drop a .json file. Column names come from every record, so a key that only shows up in a later record still gets its own column.
Input
Drop a file anywhere in this pane · utf-8
Result
An empty array is a valid input: the result is empty text, not a failure, and no header row is invented. Copy and Download stay disabled.
What this converter does with your JSON
Columns are the union of every record's key paths, ordered by first appearance — so a record that omits a key still lines up. Nested objects become dotted columns, arrays stay as compact JSON text, and strings are exported exactly as written. Nothing is inferred: no date parsing, no number coercion, no formula escaping. The export is a faithful rendering of your input, and the only lossy step is deliberate — null and a missing key both become an empty cell.
Why does a later record create a column the first record does not have?
Because the column set is the union over all records. Anything narrower would silently drop data from the records you did not look at. Column order follows first appearance, and you can reorder or deselect columns before exporting.
Can I open the result in Excel without breaking Chinese text?
Use the Excel-compatible preset: it writes a UTF-8 BOM and CRLF, which is what Excel needs to recognise UTF-8. Note that Excel may still reinterpret leading zeros and long numbers as numbers — that happens on import and no CSV file can prevent it.
What about null versus a missing field?
Both become an empty cell, so they cannot be told apart after export. If that distinction matters to you, say so before conversion rather than trying to recover it from the CSV.
Converted in a Web Worker on your own machine. Nothing is uploaded, and no account or server is involved.