JSON into a spreadsheet
APIs return JSON; people want it in Excel. The gap is that JSON is a tree and a spreadsheet is a grid, so nested objects have to be laid out flat. This converter walks every record, collects the keys it finds, and writes one column for each — including nested ones, written as city.name.
What it handles
- An array of objects, which is the usual shape of an export
- Records with different keys — every key found anywhere becomes a column
- Nested objects, flattened into dotted column names
- Arrays and objects that cannot be flattened, written back as JSON inside the cell
- Commas, quotes and line breaks inside values, escaped the way CSV requires
How to use the converter
- Paste the JSON. If the array sits inside a wrapper, type its path —
data.items— in the path box. - Choose a separator. Excel in many non-English locales expects a semicolon, not a comma.
- Download the CSV. Leave the BOM switch on so Excel shows Bangla and accented text correctly.
Why the BOM matters
Excel assumes a CSV is in the local Windows encoding unless the file starts with a byte-order mark. Without it, Bangla, Arabic, Chinese and even accented European letters come out as garbage. The mark is three invisible bytes, and Sheets, Numbers and every modern tool ignore it.
The other direction
To go from a spreadsheet back to JSON, use CSV to JSON. To tidy JSON before converting it, JSON Formatter will indent it and point out syntax errors.
Frequently asked questions
How do I convert JSON to CSV?
Paste a JSON array above and the CSV appears immediately. Keys become column headers, nested objects become dotted columns such as city.name, and you can download the file for Excel.
What happens to nested objects and arrays?
Nested objects are flattened into separate columns by default. Arrays, and objects when flattening is switched off, are written back into the cell as JSON so nothing is lost.
Why does Excel show my Bangla text as symbols?
Because it is reading the file in the wrong encoding. Keep the BOM switch on when you download — those few extra bytes tell Excel the file is UTF-8.