Skip to content
{ }JSON Formatter

JSON to TSV

Convert a JSON array of objects into tab-separated values — the format Excel, Google Sheets and database COPY commands paste cleanly. Nested keys become dot-notation columns.

Input
Output
Paste input and press To TSV.

Tab-separated, spreadsheet-ready

TSV is CSV's quieter cousin: columns are separated by a tab instead of a comma. Because real data so often contains commas but rarely tabs, TSV pastes into Excel and Google Sheets without a single misplaced column, and it is the native input for psql \copy, MySQL LOAD DATA and many command-line tools. This converter turns a JSON array of objects into TSV — one row per object, the union of all keys as the header row.

Nested objects, flattened

Nested objects are flattened into dot-notation columns, so { "user": { "name": "Ada" } } becomes a user.name column. Arrays inside a cell are written as compact JSON text, keeping the grid rectangular. Rows with different keys are unioned — a missing value is simply an empty cell.

The other direction

Exported a sheet or query result as tab-separated text and need structured data back? TSV to JSON reads the header row as keys and types numbers and booleans automatically. For comma-separated data use JSON to CSV.

Frequently asked questions

Why choose TSV over CSV?

Tabs almost never appear inside real values, while commas frequently do (addresses, prices, prose). TSV therefore pastes into spreadsheets and loads into databases with fewer quoting surprises than CSV. If your target explicitly wants commas, use JSON to CSV instead.

How are nested objects handled?

They are flattened to dot-notation columns — a.b.c — so the output stays a flat grid. Arrays within a cell are serialized as compact JSON text rather than exploded into more columns.

What if a value itself contains a tab or newline?

That field is wrapped in double quotes (the same escaping CSV uses) so the row structure is preserved. Most spreadsheet importers understand this quoting.

What JSON shape is required?

An array of objects (each becomes a row) or a single object (one row). The header is the union of all keys in first-seen order; a bare value or an array of primitives has no columns and is rejected with a clear message.