How to convert JSON to CSV
- Open a .json file or paste your JSON and press Convert.
- Choose the separator and decide how nested data should be flattened.
- Check the table preview, then copy the CSV or download the file.
When JSON has to become a table
An API hands you a JSON array of orders, a log tool exports events as JSON Lines, a colleague sends a dump from MongoDB. Then somebody asks for "the spreadsheet version" or a system you need to feed only accepts CSV imports: CRMs, newsletter platforms, accounting software, BI dashboards. This tool reads the JSON, finds every property used in any object and turns it into a column, with one row per object.
Objects don't all need the same properties. If only some orders have a coupon field, the column still appears and stays blank for the rest. Columns are ordered by first appearance, so the layout matches your data rather than an alphabetical jumble.
Nested data, flattened sensibly
| JSON value | CSV cell |
|---|---|
"customer": {"name": "Kim", "city": "Austin"} | two columns: customer.name, customer.city |
"tags": ["new", "vip"] | new, vip in one cell |
"items": [{"sku": "A1"}, …] | the array kept as JSON text in one cell |
null | empty cell |
Dot-notation columns can be turned back into nested objects later with CSV to JSON. If you'd rather keep each nested object as a JSON string in a single column, switch flattening off.
What JSON shapes are accepted
- An array of objects, the most common export format.
- An array of arrays, where each inner array is already a row.
- JSON Lines / NDJSON: one object per line, typical for logs and streaming exports.
- A single object, which becomes one row.
- An object whose values are all arrays, such as
{"users": […], "teams": […]}. The first array is shown and converted; JSON to Excel turns each one into its own sheet.
If the JSON has a syntax error, you'll see roughly where: the line and character of the problem, which is usually a missing comma or an unescaped quote.
Making the CSV open cleanly in Excel
Two settings matter when the file is headed for a spreadsheet. First, the separator: Excel in many European locales, where the comma is the decimal mark, expects semicolons. Pick semicolon and the columns land in the right place when the file is double-clicked. Second, accents: Excel may misread UTF-8 text unless the file starts with a byte-order mark, so tick Add a BOM if names like José or Zoë come out garbled. For other destinations, such as databases and import scripts, leave the BOM off.
Values containing the separator, quotes or line breaks are wrapped in quotes and inner quotes are doubled, per the usual CSV rules, and lines end with CRLF as the RFC 4180 convention recommends. The conversion runs locally, so API data with personal details stays on your machine.
More ways to use this tool
Frequently asked questions
Is my JSON sent to a server?
No. It's parsed and converted inside your browser, and the CSV is created on your device.
What happens to nested objects?
With flattening on, each nested property gets its own column using dot notation, like address.city. With it off, the whole nested object is kept as JSON text in one cell.
How are arrays handled?
Arrays of simple values are joined into one cell separated by commas. Arrays that contain objects are kept as JSON text so no data is lost.
Can I convert JSON Lines (NDJSON)?
Yes. If the input isn't a single JSON document, the tool tries reading it as one JSON value per line.
Why does Excel put everything in one column?
Your Excel expects a different separator. Choose semicolon, download again and open the new file.