Convert JSON to CSV

Turning JSON into a table means deciding what to do with nesting, arrays and records that do not all have the same fields. This converter makes those decisions explicitly and tells you what it did, instead of quietly dropping the awkward parts.

  • Runs in your browser
  • No signup
  • No upload
  • Free

JSONCSV

Runs on your device
Options

Reading JSON

Writing CSV

Work with Parquet as well?See ParquetReader with ParquetReader — opens Parquet files directly.
What happens

How this converter handles JSON to CSV

  1. Locates the records, unwrapping a common envelope such as {"data": [...]} automatically.
  2. Flattens nested objects into dotted columns: {"user":{"city":"Kyiv"}} becomes a user.city column.
  3. Builds the column set from the union of every record’s keys, so nothing is dropped because it was missing from the first record.
  4. Escapes values to RFC 4180, so text containing commas, quotes or newlines stays in one field.
Format differences

JSON vs CSV

Nested, self-describing records that every language can read. Plain text rows that open anywhere, with no types and no schema.

JSONCSV
Type informationStrings, numbers, booleans, nullNone — every value is text
StructureNested objects and arraysFlat rows and columns
CompressionNoneNone
Typical file sizeLargest — keys repeat on every recordBaseline (100%)
SchemaImplicit, per recordHeader row at best
Human-readableYes, though verboseYes, in any text editor
Tool supportEvery language, nativelyUniversal
Worth knowing

What to watch out for

Arrays become JSON text in a single cell

A tags array is written as ["a","b"] inside one field. Splitting arrays into extra rows would multiply your row count; splitting them into extra columns would make the header depend on the longest array in the file.

Records with different fields produce empty cells

The header is the union of all keys. A field present in ten records out of a thousand becomes a column that is empty in the other 990.

Excel needs the BOM option for non-ASCII text

Without a byte order mark, Excel guesses the encoding and turns accented characters and Cyrillic into noise. Turn on "Add BOM for Excel" if the file is destined for a spreadsheet.

When you need this

Common reasons to convert JSON to CSV

Getting an API response into a spreadsheet

Analysts and stakeholders work in Excel and Google Sheets. CSV is the handoff format.

Bulk imports into tools that only accept CSV

CRMs, ad platforms and mailing tools almost universally expect delimited text.

Diffing two exports

A sorted CSV diffs cleanly line by line. Pretty-printed JSON does not.

FAQ

JSON to CSV questions

Is my JSON uploaded anywhere?
No. The conversion runs in your browser using WebAssembly and JavaScript. The file is read from your disk into a Web Worker, converted in memory, and handed back as a download. It is never sent to a server, so there is nothing for us to store, log or leak.
How is nested JSON flattened?
Into dotted column names, one level per nesting depth, up to twelve levels. You can change the separator in the advanced options if your keys already contain dots.
What if my JSON is a single object rather than an array?
It becomes a one-row CSV, with each top-level key as a column.
Why does my CSV have so many columns?
Because the records are not uniform. The header is the union of every key seen anywhere in the file. Setting a record path to target a consistent subset usually fixes it.
Which delimiter should I use?
Comma unless the destination says otherwise. Semicolon is expected by Excel in several European locales, and tab avoids quoting entirely when your data contains many commas.