FileToolsHub logo

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.

csv-stringify adds a newline after the last row.
[{"name":"Ada","qty":2},{"name":"Bea","qty":3}]
name,qty then Ada,2 then Bea,3

Processing: processed on our servers, then deleted — no watermark, no account required for everyday jobs

✓ Free to use✓ No sign-up needed✓ Nothing to install

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. 1

    Add one JSON file, up to 25 MB.

  2. 2

    Press Run JSON to CSV.

  3. 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.

Browse all Spreadsheet Tools · Sitemap