JSON to CSV Converter
Turn a JSON list into a spreadsheet-ready CSV, nested fields included.
How to use the JSON to CSV Converter
- Paste a JSON array of objects, or open or drop a .json file on the left.
- The CSV appears on the right immediately, with one column for every key found in any row.
- Choose comma, semicolon or tab, and decide whether nested objects become dot columns.
- Copy the CSV or download it and open it in Excel, Numbers or Google Sheets.
Examples
About this tool
APIs and databases speak JSON, but colleagues, accountants and spreadsheet apps prefer rows and columns. This converter reads a JSON array, collects every key that appears in any object, and writes one CSV row per item. Missing keys simply leave an empty cell, so records with different shapes still line up.
Nested objects are flattened into dot-separated columns: {"customer": {"city": "Berlin"}} becomes a customer.city column. Arrays are kept as compact JSON text by default, or can be spread across numbered columns. Values that contain the delimiter, quotes or line breaks are quoted correctly, so the file opens cleanly everywhere.
Tip: if Excel shows everything in one column or mangles accented letters, switch to the semicolon delimiter or enable the BOM option under More options.
Frequently asked questions
What JSON shapes are supported?
An array of objects works best. A single object becomes one row, an array of arrays is written as-is, a list of plain values becomes a single "value" column, and an object that only wraps one list (like {"data": […]}) is unwrapped automatically.
How are nested objects handled?
With flattening on, each nested field gets its own column named with dots, such as address.zip. With it off, the whole nested object is written into one cell as JSON text.
Is my data sent to a server?
No. The conversion is done by JavaScript running in this page. Your JSON stays on your device, so it is safe to use with customer or internal data.
Why does Excel put everything in one column?
Excel uses your system list separator. In many European locales that is a semicolon, so choose the semicolon delimiter, or use Data → From Text/CSV and pick comma when importing.
Is the column order preserved?
Yes. Columns appear in the order keys are first seen, starting with the first object, and new keys from later rows are added at the end.