ConvertUnlimited

JSON to CSV Converter

Convert API and structured JSON data into spreadsheet-friendly CSV.

Local developer data tool

Paste JSON and convert it to CSV.

Turn arrays of objects into CSV, flatten nested fields with dot notation, and download with selected inputs processed locally in your browser.

Rows: 0 · Fields: 0 · Input size: 0 B

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 file contents are processed locally in your browser for supported workflows. This privacy build does not intentionally load ads, analytics, remote fonts, or third-party runtime scripts.

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 shapeCSV result
Top-level objectConverted to a single data row
Array of objectsOne row per array item
Nested object, such as profile.noteFlattened 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 rowsEmpty cell, column still present
Array of non-objects, or array of arraysRejected 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.

Limits and gotchas

  • Arrays are stringified, not split into columns. A field whose value is a JSON array becomes one cell containing the array serialized as text, with internal quotes doubled per CSV escaping rules. It never becomes multiple rows or multiple columns.
  • One warning message covers two different situations. The tool shows the same nested-values warning both when a nested object was flattened into dot-notation columns and when a field simply contained an array. For an array-only case, no dot-notation flattening actually happened; the array was stringified into a single cell instead, so the warning wording does not exactly describe what took place.
  • Column set is a union across all rows. If one row has a field the others do not, every row gets that column, with empty cells where a row lacked it; column order follows first-seen key order, not alphabetical order.
  • Only comma, semicolon, and tab delimiters are offered. A pipe-delimited or fixed-width output requires a manual find-and-replace after conversion.
  • Non-object array items are rejected outright. An array of plain strings or numbers, or an array containing another array, fails conversion with a message asking for an object or an array of objects; there is no automatic wrapping of primitive arrays into a single-column CSV.
  • Opening a file replaces the input box. Opening a .json file with the file picker overwrites whatever is currently in the input box; there is no merge or append behavior.

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

Privacy build: This build removes ads, analytics, remote fonts, runtime CDN scripts, and file-operation telemetry. Selected files are processed in the browser using local JavaScript and browser APIs.

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.

Privacy & processing

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.