JSON formatter / validator

JSON to CSV converter

Flatten a JSON array of objects into a CSV table for spreadsheets, BI tools, or migration scripts.

local only

Format pair conversion

JSON to CSV conversion notes

Use this JSON to CSV converter when an API response, log export, or fixture file needs to land in a spreadsheet, a BI ingestion job, or a migration tool that only accepts CSV. The converter takes an array of JSON objects, derives the header row from the union of keys across the array, and emits one CSV row per object. Values containing commas, quotes, or newlines are wrapped in double quotes and inner quotes are doubled, matching RFC 4180 so the output opens cleanly in Excel, Google Sheets, and most ETL tools. Nested objects are stringified to JSON to preserve information; flatten further if your downstream tool needs separate columns.

Source

[{"name":"Ada","email":"ada@example.com","active":true},{"name":"Grace","email":"grace@example.com","active":false}]

Result

name,email,active
Ada,ada@example.com,true
Grace,grace@example.com,false
Output format
Comma-separated values per RFC 4180 with CRLF or LF line endings
Header derivation
Union of keys across all objects, in first-seen order
Common pitfall
Nested objects stringify to JSON; flatten upstream if you need separate columns

Source: RFC 4180: Common Format and MIME Type for Comma-Separated Values (CSV) Files, accessed 2026-05-06

FAQ

What characters get quoted in the CSV output?

Fields that contain commas, double quotes, or line breaks are wrapped in double quotes, and any inner double quote is doubled ("" inside the quoted field), per RFC 4180.

How does the converter handle missing keys across objects?

The header row is the union of keys across the array. Objects without a given key emit an empty cell so every row has the same number of columns.

Why are nested objects shown as a JSON string in the cell?

CSV is a flat tabular format, so the converter stringifies nested objects rather than dropping data. Flatten nested fields upstream (for example with object spread) if your spreadsheet needs separate columns.