Converters
JSON to CSV Converter
Flatten JSON arrays into spreadsheet-ready CSV — nested keys become dot-path columns, quoting handled for you.
In short
JSON to CSV turns an array of objects into one CSV row per object. Nested objects and arrays are flattened into dot-path columns, the header row is the union of every key found, missing fields leave empty cells, and cells containing commas, quotes or line breaks are quoted per RFC 4180 so the file opens in Excel and Google Sheets.
By NaveenKumar T · Updated
Learn: How to Convert CSV to JSON in JavaScript, Python and the Browser
- Instant in-browser conversion
- Validates input first
- Nested keys flatten to dot paths
Runs entirely in your browser — nothing you paste or open here is uploaded, logged, or stored.How we handle data →
Example
JSON to CSV: input and output
Two support tickets with a nested requester object, a tags array (empty on the second ticket), a subject containing a comma and a null field.
[
{
"id": 4211,
"subject": "Login fails, then hangs",
"requester": { "name": "Priya N.", "email": "priya@example.org" },
"tags": ["auth", "urgent"],
"resolved": false
},
{
"id": 4212,
"subject": "Invoice PDF blank",
"requester": { "name": "Tom Reyes", "email": "tom@example.org" },
"tags": [],
"assignee": null
}
]id,subject,requester.name,requester.email,tags.0,tags.1,resolved,tags,assignee
4211,"Login fails, then hangs",Priya N.,priya@example.org,auth,urgent,false,,
4212,Invoice PDF blank,Tom Reyes,tom@example.org,,,,[],Note how requester.name and requester.email became dot-path columns and the first ticket's tags array spread into tags.0 and tags.1, while the second ticket's empty array produced a separate tags column holding []. The subject with a comma was quoted, and the null assignee is an empty cell.
Learn more
How JSON to CSV conversion works
If your JSON is an array of objects, each object becomes one CSV row. Nested structures are flattened with dot notation — customer.name, items.0.sku — so no data is lost, just re-shaped into columns. The header row is the union of every column found across all rows; objects missing a field simply leave that cell empty.
Cells containing commas, quotes, or line breaks are wrapped in double quotes with internal quotes doubled, per RFC 4180 — so the file opens correctly in Excel, Google Sheets, and every standard CSV parser.
When to convert JSON to CSV
The classic path from API to spreadsheet: analysts want Excel, your data is JSON. Convert the response here, download data.csv, and it opens with proper columns immediately. Equally useful for loading JSON exports into SQL databases via COPY/LOAD DATA, for diffing datasets in tools that understand tables better than trees, and for handing non-developers a readable version of structured data.
Help
Frequently asked questions
Everything you need to know about the JSON to CSV.
01How do I convert a single JSON object, not an array, to CSV?
A single object becomes one data row under a header built from its keys, with nested objects flattened to dot-path columns. If what you want is one row per item, paste the inner array rather than the object that wraps it — {"orders": […]} should be converted as […].
02What happens to nested objects and arrays in CSV?
They're flattened into dot-path columns: {"customer":{"name":"Ada"}} becomes a customer.name column, and arrays index numerically (items.0.sku, items.1.sku). CSV is a flat format, so deep nesting widens the table — if each array item should be its own ROW instead, convert the inner array rather than the wrapper object.
03How are null, boolean, and empty values written into cells?
null becomes an empty cell — indistinguishable from a key that was simply missing from that object. Booleans are written as the literal text true or false, and numbers keep their JSON form (1.5, 1e21). An empty array or empty object is not dropped: it appears as the two-character text [] or {} so you can see the field existed. Column order follows first appearance — keys from the first object come first, and new keys discovered in later objects are appended to the right.
04Can I convert the CSV back to the original JSON?
Only for flat, string-typed records. Dot-path columns such as customer.name come back from CSV to JSON as flat keys named "customer.name", not as nested objects; empty cells come back as null whether they were null or missing; and numeric-looking text is re-typed unless "Keep everything as strings" is selected. A round trip is a good check that nothing was dropped, not a way to restore nesting.
Keep working
Related tools
CSV to JSON
Converters
JSON to TSV
Converters
JSON Viewer
Explore any JSON document in an interactive, collapsible tree — keys, types, and counts at a glance, with code view one click away.
JSON to XML
Converters
JSON to YAML
Converters
JSON Formatter
Format, beautify, and validate JSON instantly in a professional VS Code-style editor — free, fast, and 100% private.
Learn the format
Related guides
How to Convert CSV to JSON in JavaScript, Python and the Browser
Tested CSV to JSON code for Node (papaparse) and Python (csv.DictReader), plus type inference, nested output, streaming, and the trip back to CSV.
7 min readReference · JSONJSON Examples: From Hello World to Real API Payloads
Copy-ready JSON examples: basic objects, arrays, nested structures, API responses, configuration files — each explained line by line.
2 min readGuide · JSONHow to Open a JSON File (and Actually Read It)
Three ways to open a .json file: instantly in your browser, in a proper editor, or in Excel/Sheets — plus why double-clicking shows you a wall of text.
2 min read