What this tool does
Turn arrays of objects into CSV, flatten nested fields with dot notation, and download with selected inputs processed locally in your browser.
Privacy behavior
Selected inputs are processed locally in your browser for this workflow. The public site may load ads and analytics; use the privacy build for privacy-sensitive workflows.
Supported workflow
Use the controls on this page, review the output in your browser, then copy or download the result.
When should you convert JSON to CSV?
JSON is common in APIs and developer tools, while CSV is easier to inspect in spreadsheet apps and data-cleaning workflows.
This converter supports JSON objects and arrays of objects. Nested objects are flattened with dot notation so nested data is visible instead of silently discarded.
How this converter flattens JSON
CSV is a flat, two-dimensional grid of rows and columns, while JSON allows arbitrary nesting. This converter accepts a single JSON object, treated as one row, or an array of objects, treated as one row each. Every other shape, such as an array of numbers or an array of arrays, is rejected before conversion.
Nested plain objects are flattened using dot notation: a field such as profile: { note: "hello" } becomes a single column named profile.note. Arrays are handled differently and are not exploded into extra rows or columns; an array value at any depth is serialized with JSON.stringify() into one CSV cell, quotes and all. If different rows use different sets of keys, the header row becomes the union of every key seen across all rows, in first-seen order, and rows missing a given key get an empty cell rather than misaligning the columns.
| JSON shape | CSV result |
| Top-level object | Converted to a single data row |
| Array of objects | One row per array item |
| Nested object, such as profile.note | Flattened into a dot-notation column |
| Array value, such as tags: [a, b] | Stored as one JSON-encoded string in a single cell, not split into columns |
| Missing key in some rows | Empty cell, column still present |
| Array of non-objects, or array of arrays | Rejected before conversion |
Worked example
The sample data behind the Sample JSON button is an array of objects with a nested profile field:
[
{ "name": "Alice", "city": "Bangkok", "active": true, "profile": { "note": "hello" } },
{ "name": "Bob", "city": "Paris", "active": false, "profile": { "note": "cafe" } }
]
With a comma delimiter and the header row enabled, this converts to:
name,city,active,profile.note
Alice,Bangkok,true,hello
Bob,Paris,false,cafe
The nested profile.note field became its own column through dot notation. If one of those objects instead had an array field such as "tags":["ops","sales"], the resulting cell would contain the literal text "[""ops"",""sales""]", a quoted, JSON-encoded string rather than two separate columns; the converter shows a warning whenever this kind of flattening happens so the output is not mistaken for a simple one-to-one copy of the source fields.
Frequently Asked Questions
Is this JSON to CSV Converter free?
Yes. You can paste, convert, copy, and download CSV without signup.
Are JSON files uploaded?
No. JSON files are read and converted locally in your browser.
What JSON shape works best?
Arrays of objects work best. A single object is converted into one CSV row.
How are nested objects handled?
Nested keys are flattened with dot notation, such as profile.name.
Does it support Unicode?
Yes. UTF-8 text, accents, Asian scripts, and emojis are preserved in CSV output.
What happens to array fields, like a list of tags?
An array value is serialized with JSON.stringify into a single cell, such as "[""ops"",""sales""]", rather than being split into separate rows or columns. The tool shows a warning when this happens.
Why do some rows have empty cells after conversion?
The header row is the union of every key seen across all objects. A row that did not include a given key gets an empty cell for that column instead of shifting the other values out of alignment.
Can I use a pipe or custom delimiter?
Not directly. Only comma, semicolon, and tab are offered as delimiter options; a different delimiter requires a manual find-and-replace on the CSV output.
Privacy Policy
ConvertUnlimited does not provide a server-side upload endpoint for this JSON to CSV conversion flow. Selected JSON files are processed locally in your browser.
Terms of Use
ConvertUnlimited is provided as is. Review generated CSV before using it in production systems.
Trust and privacy
Files are processed locally where supported. Review the Trust Center for the processing model and the Privacy Policy for public-site privacy boundaries.