⚡ Curated dev resources & dealsSponsored
DevToolBayFree Developer Tools

JSON to CSV

Convert a JSON array of objects into properly quoted CSV with your choice of delimiter. Non-flat values are serialized to embedded JSON text. Downloads and copies in one click.

Delimiter

Behaviour

The union of keys across all objects becomes the header row, in first-seen order. Missing fields become empty cells. Values that are objects or arrays are embedded as JSON strings (double-quoted per RFC 4180), e.g. {inner}. Delimiters, quotes and line breaks inside any value are escaped correctly so Excel, Numbers and Sheets can import the file directly.

How to use JSON to CSV

Paste a JSON array of objects and the CSV preview builds itself: nested keys flatten with dot notation into readable column headers, and rows whose shapes differ merge into a union header with empty cells for missing values. Choose comma, semicolon or tab as the separator, then copy or download the file.

The output is RFC 4180 compliant — cells containing separators, quotes or newlines are wrapped and escaped by doubling — so Excel, Google Sheets and database importers read it without surprises. Array values serialize inline; switch to array-to-rows mode when each element should become its own record.

Frequently asked questions

How are nested objects flattened to CSV?

Nested keys join with dot notation, so user.address.city becomes its own column. Arrays serialize inline, and an array-to-rows mode can expand them into repeated records.

What if rows have different keys?

The header is the union of all keys found across records. Missing values become empty cells, which matches how spreadsheet tools import sparse data.

Is the CSV RFC 4180 compliant?

Yes. Cells containing commas, quotes or line breaks are wrapped in double quotes and inner quotes are escaped by doubling, so Excel and Google Sheets import cleanly.

Can I choose the delimiter?

Comma is the default, but semicolon and tab options cover European locales and direct TSV use. The download button saves the file with the matching extension.

Related tools