JSON to CSV
JSON to CSV lets you convert JSON arrays to CSV format. It is free on FileToolsHub with no account required for everyday use.
[{"name":"Ada","qty":2},{"name":"Bea","qty":3}]name,qty then Ada,2 then Bea,3Processing: processed on our servers, then deleted — no watermark, no account required for everyday jobs
About JSON to CSV
JSON to CSV turns an array of objects into a comma-separated file with a header row. A single object is wrapped as one row. Invalid JSON never becomes a table.
Keys become the header
The file text is parsed first. An array is used as the row list. Anything else is wrapped in a one-item array, so one object still gets a header. csv-stringify is called with the header option on. For the rows name Ada qty 2 and name Bea qty 3, the file text is name,qty then Ada,2 then Bea,3, and the library adds a final newline. Column order follows the key order of the objects. A number stays a number in the cell. There is no type menu and no delimiter menu. The button reads Run JSON to CSV. The download name ends in converted.csv.
What a nested value becomes
A nested array is not split into extra columns. The measured tags value on Ada became one quoted cell, not two tag columns. An object inside a field is treated the same way: one cell, not a second table. If two rows do not share keys, later keys still appear in the header because the library collects columns from the records it is given. This page does not flatten dotted paths. It does not drop a column you hoped to hide. Read the header before you import the CSV into a sheet that expects a fixed layout.
When the parse fails
A file whose text is a lone opening brace throws Expected property name or '}' in JSON at position 1. An empty file throws Unexpected end of JSON input. Those are the parser messages. This page does not rewrite them into a friendlier sentence. A trailing comma fails the same way, because the parser is JSON, not a loose config format. Comments are not allowed. The job takes the first uploaded file. A second file in the same request is not merged into more rows. Prefer an array of objects so each key becomes a column you can name.
Where the table goes
The JSON is uploaded for the conversion, and the temporary file is removed after the download. The cap is 25 MB. Keep the original JSON if you still need the nested structure, because the CSV cannot round-trip an array cell back into an array without a second parse. Excel to CSV starts from a workbook. This page starts from JSON text. Open the CSV in a text editor once and confirm the header matches the keys you expect before you import it into a sheet that rejects an extra column. The Ada and Bea sample is three lines including the header, and the library's final newline is part of that file.
How to use
- 1
Add one JSON file, up to 25 MB.
- 2
Press Run JSON to CSV.
- 3
Press Download file. The name ends in converted.csv.
Privacy
The JSON file is uploaded for the conversion, and the temporary file is deleted after the CSV download.
Frequently asked questions
What does the Ada and Bea sample look like?
The CSV text is name,qty then Ada,2 then Bea,3, with a newline after the last row.
What if the file is one object, not an array?
It is wrapped as a single row. The header still comes from the keys.
Where does a nested array go?
Into one cell. The measured tags field was a quoted cell, not extra columns.
What does a broken file say?
A lone opening brace throws Expected property name or '}' in JSON at position 1. An empty file throws Unexpected end of JSON input.
What does the CSV file get named?
It ends in converted.csv. The button reads Run JSON to CSV. The cap is 25 MB.
Related guides
Related tools
CSV to JSON
CSV to Excel
Excel to CSV
JSON to Excel
Excel to JSON
JSON Formatter
JSON Validator
JSON Minifier
Browse all Spreadsheet Tools · Sitemap