JSON to CSV
Convert a JSON array of objects into a downloadable CSV file, with nested objects flattened.
What is JSON to CSV Conversion?
JSON represents data as nested objects and arrays, which is flexible but not tabular. CSV (Comma-Separated Values) represents data as flat rows and columns — the format every spreadsheet tool, BI platform, and bulk-import feature understands. Converting between them means turning a JSON array of objects into a table: each object becomes a row, and each field becomes a column.
The tricky part is nesting. A field like address.citydoesn't exist as a column in raw JSON — it's a city key inside an addressobject. This converter flattens that structure into dot-notation column names automatically, and builds the full header row from every field it finds across all the objects, even when individual records don't share the exact same shape.
This page converts JSON to CSV entirely in your browser. Paste a JSON array — an API response, an export, a list of records — or drag and drop a .json file, and download a ready-to-open.csv file.
Why Convert JSON to CSV?
Sharing Data with Non-Developers
Stakeholders who live in spreadsheets can’t easily read a JSON API response. Converting it to CSV lets them open, filter, and pivot the data in Excel or Google Sheets.
Exporting Logs and Records
API logs, database exports, and analytics events are usually arrays of similarly-shaped objects — a natural fit for rows and columns once flattened.
Handling Real-World, Uneven Data
Not every record has every field. Missing keys become blank cells instead of breaking the conversion, so partial or inconsistent records still produce a usable file.
Feeding BI and Import Tools
Many spreadsheet, BI, and bulk-import tools only accept flat, tabular CSV — this bridges the gap from nested JSON without writing a script.
Example
Notice how address becomes two flattened columns, the missing address.zip and tags for Alan Turing are left blank, and the comma and quotes in row three are escaped correctly.
[
{ "id": 1, "name": "Ada Lovelace", "address": { "city": "London", "zip": "SW1" }, "tags": ["math", "pioneer"] },
{ "id": 2, "name": "Alan Turing", "address": { "city": "Manchester" } },
{ "id": 3, "name": "Grace \"Amazing\" Hopper", "address": { "city": "New York, NY", "zip": "10001" } }
]id,name,address.city,address.zip,tags
1,Ada Lovelace,London,SW1,"[""math"",""pioneer""]"
2,Alan Turing,Manchester,,
3,"Grace ""Amazing"" Hopper","New York, NY",10001,Features
Header Generation
Column headers are built from the union of every field across all objects, in the order they first appear.
Nested Object Flattening
Nested objects become dot-notation columns automatically — address.city, address.zip — instead of an unusable [object Object] cell.
RFC 4180 Escaping
Values containing commas, quotes, or line breaks are quoted and escaped correctly, so the file opens cleanly in Excel or Sheets.
Upload a File
Drag and drop or upload a .json file to convert it directly, no copy-pasting required.
Download CSV
Save the result as a standalone .csv file ready to open or import anywhere.