Skip to content
Kilnfile

JSON to CSV

Convert a JSON array of objects into a CSV file ready for Excel or Google Sheets.

Processed on your device, nothing uploadedLast updated

To convert JSON to CSV, paste an array of objects into the Input box, choose Comma, Semicolon or Tab as the Delimiter and click Convert to CSV; the first row holds the keys and each object becomes a row. Nested objects are flattened to dotted column names, and you can copy the result or download it as a .csv file.

Your file stays in this tab.On your device
Options

How do I convert JSON to CSV for Excel?

  1. Paste your JSON into the Input box. It should be an array of objects, or an object that contains one such as an API response.
  2. Choose the Delimiter: Comma for UK Excel and Google Sheets, Semicolon (Excel in Europe) for continental locales, or Tab.
  3. Leave Flatten nested objects (a.b.c) ticked so nested data becomes separate columns.
  4. Click Convert to CSV and check the preview in the output panel.
  5. Click Download to save a .csv file, or Copy output to paste it elsewhere.

The converter reads every object in the array, collects the full set of keys across all of them, and uses that as the header row, so objects that are missing a key simply get an empty cell rather than shifting the columns. If you paste an object rather than an array, the tool looks for the array of objects inside it, which handles the common API shape of { "data": [ ... ] } without editing.

Flatten nested objects (a.b.c) is what makes real-world JSON usable in a spreadsheet. An address block such as { "address": { "city": "Leeds", "postcode": "LS1" } } becomes two columns headed address.city and address.postcode. Arrays inside objects are written as their JSON text in a single cell, because there is no sensible way to spread a variable-length list across fixed columns. With flattening off, any nested object is written as JSON text instead.

Quoting follows the CSV rules Excel expects: any value containing the delimiter, a double quote or a line break is wrapped in double quotes, and quotes inside it are doubled. That means addresses with commas, product descriptions with line breaks and text containing inch marks all survive the round trip. Numbers and booleans are written plainly, null and missing values as empty cells.

Choose the delimiter to match where the file is going. UK, US and Irish Excel installs, and Google Sheets everywhere, expect commas. Excel in Germany, France, the Netherlands and most of the rest of Europe uses the comma as a decimal separator and so expects semicolons; open a comma file there and everything lands in column A. Tab is the safest choice for pasting into an existing sheet. The conversion runs in your browser tab; nothing is transmitted or stored, and exports of a few hundred thousand rows finish in a couple of seconds.

How it works: this tool uses plain JavaScript running in your browser tab. No server is involved, so Kilnfile never sees your file. Last reviewed 20 September 2026.

Frequently asked questions

Why does my CSV open in a single column in Excel?

Your Excel's locale expects a different delimiter. UK Excel expects commas; German, French, Dutch and most other European versions expect semicolons. Convert again with the other delimiter, or use Excel's Data > From Text/CSV import and choose the delimiter there.

What happens to nested objects and arrays?

With Flatten nested objects ticked, nested objects become columns with dotted names like customer.address.city. Arrays are written as JSON text in one cell, since a list cannot map cleanly to fixed columns. If you need one row per array item, restructure the JSON first.

Will Excel mangle leading zeros or long numbers?

It can. Excel strips leading zeros from postcodes and phone numbers and rounds numbers over 15 digits when it opens a CSV directly. To keep them, import the file through Data > From Text/CSV and set those columns to Text, or open it in Google Sheets instead.

Does the JSON have to be an array?

An array of objects is the expected input, or an object that holds one such as { "results": [ ... ] }, which the tool finds automatically. If your JSON is a different shape, wrap the objects you want in an array first.

Is my JSON sent to a server?

No. The conversion runs as JavaScript in your browser tab and nothing is uploaded or stored. The Download button creates the .csv file locally in your browser as well.

Cite this page: “JSON to CSV Converter: Export JSON for Excel in Seconds”, Kilnfile, https://kilnfile.com/text/json-to-csv/

Guides