BrowserTools

JSON to CSV Converter

Flatten JSON arrays into CSV spreadsheets

By Guga — BrowserTools maintainer, Tbilisi, Georgia Updated 2026-09-18
Free Private No uploads
What is JSON to CSV Converter?

Spreadsheets want a rectangle, JSON gives you a list of records whose keys are not guaranteed to match, and the interesting decision in this conversion is what the header becomes. It is built from every key that appears anywhere in the array, in the order they were first seen, so a field missing from a record leaves a blank cell rather than shifting the columns. Nothing is flattened: a nested object is written as its default string form, which is not something you want in a spreadsheet, and an array of values is joined with commas and then quoted so the file stays valid. Values containing commas, quotes or line breaks are escaped properly, and a cell that was null becomes an empty field. Input has to be a non-empty array of plain objects; anything else is refused with the reason.

Turn arrays of JSON objects into CSV spreadsheets you can open in Excel or Google Sheets, and convert CSV back into JSON. Handles nested fields, quotes and escaping correctly.

Private JSON to CSV Converter In Your Browser

JSON to CSV Converter is processed locally with client-side JavaScript. Your files never touch a server, and there is no queue to wait in.

Step-by-Step

How to use JSON to CSV Converter

1

Open the JSON → CSV tab and paste an array of flat objects into the input area.

2

Read the header row the tool derives from the union of all keys.

3

Copy the result or download it as converted.csv for a spreadsheet.

4

Check any nested object or array values yourself, since they are not expanded into columns.

Key Capabilities
  • Header built from every key in the array, in first-seen order
  • Records missing a key produce a blank cell rather than a shifted column
  • Commas, quotes and line breaks inside values escaped to the CSV rules
  • Copy and download controls, with the file offered as converted.csv
Common Use Cases
  • A data analyst loading an API response of records into a spreadsheet without scripting first.
  • A support engineer sending a list of exported records to someone who will work in Excel.
  • A developer producing a small seed file for a database import that expects delimited text.
Clear Answers

Frequently Asked Questions

What happens to a nested object?
It is written as the text [object Object], which is not useful. There is no flattening into dotted column names here — a record like {"user":{"name":"Ada"}} becomes a single cell containing that placeholder. Flatten the structure in your source data first, or convert the fields you actually need.
Why is the header longer than the first record?
Because it is the union of every key across the whole array, not just the first object's. That is the safe choice: it stops a field that only appears in a later record from being dropped, at the cost of empty cells wherever a record lacks one of the columns.
Can the same page convert back again?
Yes. The CSV → JSON tab on this page reads the file back, and the separate CSV to JSON page opens on that direction. A round trip preserves the top-level records, though values that were objects or arrays will not be restored, because CSV has no way to represent them.
Why does my array of numbers get rejected?
Each element has to be an object, because each one becomes a row with a header. An array of primitives has no field names to use, so the tool stops and says so rather than inventing column names. Wrap each value in an object with a key first.

Related Guides

View all guides →