JSON Tools

JSON to CSV

Convert an array of JSON objects into a CSV table. Nested object properties become dotted columns, arrays stay as JSON text in a cell, and you can choose a comma, semicolon, or tab delimiter.

✓ Every tool runs in your browser. We do not upload your input or output.

JSON to CSV
Keyboard shortcuts

Ctrl/⌘ + Enter: process

Ctrl/⌘ + Shift + F: full screen

Esc: exit full screen

Ctrl/⌘ + F in editor: search

CSV output
ReadyLines: 1 · Characters: 0 · Size: 0 KB · Time: — · Cursor: 1:1

How to use

  1. Provide a JSON array whose items are objects. Paste text, upload a file, or try the sample.
  2. Choose the delimiter expected by your spreadsheet or downstream importer.
  3. Review the generated header row. Nested fields use dotted names and columns cover fields found in any row.
  4. Copy the result or download it as a .csv file.

Examples

Flatten customer records

The nested name property becomes a user.name column.

Input
[{"id":1,"user":{"name":"Avery"}},{"id":2,"user":{"name":"Morgan"}}]
Output
id,user.name
1,Avery
2,Morgan

Quote a field containing commas

CSV quoting keeps the comma inside one cell instead of creating another column.

Input
[{"label":"red, blue","count":2}]
Output
label,count
"red, blue",2

Moving object data into a table

JSON often models records with nested fields, while CSV expects a rectangular grid. This converter collects every field seen across the input rows and writes a header for each one. A nested property such as account.region becomes a dotted column name. A row that lacks that property receives a blank cell, which makes the file practical for spreadsheet review.

CSV has no native types. Numbers, booleans, and strings all become cell text. A downstream importer may infer types differently, so verify important columns after import. Arrays are serialized as JSON within a cell rather than split into separate rows; this preserves their content without multiplying records.

Delimiters and quoting

Choose a semicolon if your spreadsheet locale uses commas as decimal separators, or a tab for a tab-separated workflow. Fields containing a delimiter, quote, or line break are enclosed in quotes, and internal quotes are doubled. The converter writes a header even when some records have different keys. For a round trip, use CSV to JSON, but remember that types and nested structure cannot be recovered automatically from plain CSV.

Before importing a customer or transaction export, compare a few rows with the source JSON. Check records with missing fields, commas inside names, and arrays serialized into cells. An empty CSV cell can mean a missing field or an empty value in the source, so the destination application needs an explicit rule for that distinction. Keep identifiers such as 00123 as text if leading zeros matter.

Frequently asked questions

Why must the input be an array?

CSV is a table of rows. An array of objects provides one object per row and keys for the column names.

How are nested objects represented?

Nested object keys are joined with dots, such as user.name. This is a flat export convention, not a reversible schema guarantee.

What happens to missing values?

A row without a field receives an empty cell in that column.

Are arrays expanded into rows?

No. Arrays are encoded as JSON text inside a cell so one input object remains one CSV row.

Related tools