JSON to CSV Converter
Convert a JSON file, an API response or JSON Lines into a clean CSV: nested objects become dot-path columns and the records are found even when they are wrapped. Free, no sign-in, and nothing is uploaded.
Drop your file here or choose a fileTap to choose a file
Opened on your device - never uploaded · up to 50MB
Supports .json, .jsonl, .ndjson, .txt · or paste a file from your clipboard
No file handy? · download it
How to Convert JSON to CSV
- Drop a .json file above or paste the JSON. A file with one object per line (JSON Lines / NDJSON) works too.
- Check which records become rows. The largest array of objects in the document is chosen; pick another from Rows from if the document has several.
- Choose how nesting is handled and check the preview: one row per record, one column per field.
- Download the CSV.
From Nested JSON to Flat Columns
JSON is a tree and CSV is a grid, so every converter has to decide how to flatten. This one follows the convention most databases and BI tools understand:
| JSON | CSV columns |
|---|---|
{"customer": {"name": "Ada", "email": "ada@example.com"}} | customer.name, customer.email |
{"tags": ["red", "blue"]} | tags = ["red","blue"], or red, blue with arrays expanded |
{"items": [{"sku": "A1"}, {"sku": "B2"}]} | items as JSON text, or items.0.sku, items.1.sku with arrays expanded |
| A key missing from some records | The column still appears; those rows are blank |
Columns appear in the order their keys are first seen, so the CSV reads in the same order as the JSON. Numbers stay numbers, true/false stay as written, and JSON null is a blank cell unless you choose to write the word null.
API Responses and Wrapped Records
Real-world JSON is rarely a bare array. An export from Shopify, Stripe, a CRM or your own API usually looks like {"data": [...], "page": 2} or nests the list deeper. Converting the wrapper gives a single useless row, so the converter searches the document for arrays of objects and offers each one with its record count. The largest is selected by default.
JSON to CSV or JSON to Excel?
CSV is the format to choose when the data is headed into another system - a database import, a mail-merge, a Google Sheets upload, a script. If you want a workbook to read and format, the JSON to Excel converter writes an .xlsx with the same flattening rules. To go back from a spreadsheet to JSON, use Excel to JSON.
Frequently Asked Questions
Each nested field becomes its own column named with a dot path, so {"customer": {"name": "Ada"}} becomes a customer.name column. Untick 'Flatten nested objects' to keep each nested object as JSON text in a single cell instead.
By default an array is kept as JSON text in one cell, which keeps one row per record. Tick 'Expand arrays' to spread them out: a list of plain values becomes a comma-separated cell and a list of objects becomes indexed columns such as items.0.sku and items.1.sku.
The converter looks inside the document for arrays of objects - data, results, items, whatever they are called - and uses the largest one. If there is more than one, pick another from the Rows from list.
Yes. A file with one JSON object per line is detected automatically and each line becomes a row.
Yes. Values containing commas, quotes or line breaks are quoted, and a file with accented or non-Latin characters starts with a UTF-8 marker so Excel on Windows does not garble them.
No. The JSON is parsed and the CSV is built in your browser. Nothing is sent to a server, so API responses with customer data or tokens never leave your machine.