jsontoolskit.org
JSON and JSON Schema utilities, in the browser
Say hi →

JSON to TSV

array of objects → tab-separated values · updated 28 July 2026

Convert a JSON array to TSV — the format spreadsheets accept from the clipboard and Postgres reads with COPY … FORMAT text. Real TSV has no quoting rules, so embedded tabs and newlines are backslash-escaped instead.

Paste input to start.

How to convert JSON to TSV

  1. Paste your JSON array, or drop a .json file.
  2. Choose how null is written. Use \N when the target is COPY … FROM STDIN in PostgreSQL — that is its null marker.
  3. Pick how tabs and newlines inside values are handled. Escaping preserves them; replacing with a space is safer for tools that do not un-escape.
  4. Set Nested objects and Arrays to control whether nested data becomes extra columns or stays in one cell.
  5. Copy the result and paste directly into Excel, Numbers, or Google Sheets — they split on tabs without an import dialog.

Why TSV instead of CSV

TSV's advantage is that tab characters are rare inside real data, so you rarely need quoting at all — which removes the entire class of bugs where a comma inside a quoted field breaks a naive parser. Its disadvantage is that there is no agreed standard: some tools escape tabs, some forbid them, some silently truncate. That is why the escaping mode here is explicit.

If your destination expects RFC 4180 quoting, use JSON → CSV instead. For much deeper TSV tooling — repair, column surgery, delimiter sniffing — see tsvkit.org.

Privacy

Nothing is uploaded. The conversion runs in this tab using your own browser's JavaScript engine — no server sees your data, and the page keeps working with the network disconnected.

FAQ

Will Excel open this correctly?

Pasting from the clipboard works without a dialog. Opening a saved .tsv file sometimes triggers the import wizard — choose "Delimited" and tick only Tab. Excel also reformats anything that looks like a date, so keep IDs and codes as text.

What is \N?

PostgreSQL's COPY text format uses the two-character sequence \N to mean SQL NULL, which lets it distinguish a null from an empty string. Other databases use different markers.

Can I go the other way?

Yes — TSV → JSON parses tab-separated text back into a JSON array with type inference.