JSONL ⇄ TSV Converter
JSONL to TSV converter. Convert JSON Lines to tab-separated values and back. Flattens nested keys with dot notation. Ideal for BigQuery, Snowflake and shell pipelines. Browser-only.
100% client-side. No upload.
Convert
JSONL ↔ TSV Converter
Convert JSONL to tab-separated values and back. TSV is the format BigQuery, Snowflake, Redshift, and most shell pipelines prefer over CSV — no quoting headaches, no embedded-comma issues, just tabs. Nested keys are flattened with dot notation (user.email, meta.tags.0). 100% in-browser.
Why TSV over CSV?
Tabs almost never appear inside data, so TSV files don't need the quoting / double-quote
escaping that makes CSV so error-prone. Most big-data tools (BigQuery's
LOAD DATA, Snowflake's COPY INTO, cut -f /
awk -F$'\t' on the command line) read TSV more reliably and faster than CSV.
When your records contain free-text fields with commas, quotes, and newlines, TSV is the
pragmatic choice.
How it handles nesting
Nested objects are flattened with dot notation: {"user":{"email":"x"}} becomes
the column user.email. Arrays are flattened by index:
{"tags":["a","b"]} becomes tags.0, tags.1. Tabs and
newlines inside values are escaped as \t and \n so the file
stays one-record-per-line.
Tips & common pitfalls
- Sparse records produce empty cells. If line 1 has
nameand line 2 hasemail, the output has both columns with empties where the value was missing. - Header row is auto-detected on reverse. TSV → JSONL uses the first line as keys.
- Tab characters in source data are escaped. The converter replaces literal tabs in values with
\tto preserve the table shape.
Example
Input JSONL:
{"id":1,"user":{"name":"alice","age":30},"tags":["admin","ops"]}
{"id":2,"user":{"name":"bob","age":25},"tags":["dev"]}
Output TSV (tabs shown as →):
id→user.name→user.age→tags.0→tags.1
1→alice→30→admin→ops
2→bob→25→dev→
Before you start
You need either a .jsonl file (to convert to TSV) or a .tsv file (to convert to JSONL). The first row of TSV is treated as the column header.
How to use it
- Drop your file or paste the contents.
- The tool auto-detects whether you gave it JSONL or TSV and converts in the right direction.
- For JSONL → TSV, nested keys are flattened with dot notation (
user.email). - Click Convert, then download.
Why TSV over CSV
BigQuery, Snowflake and most shell pipelines (cut, awk) work better with TSV because tabs almost never appear inside values, removing the need for quoting. CSV needs to escape commas, double quotes and newlines, which trips up cheap parsers.
Tips & common pitfalls
- Newlines inside values are replaced with spaces — TSV doesn't support multi-line cells.
- Tab characters inside values are replaced with single spaces, otherwise the row would split wrong.
- Need spreadsheet-grade output? Use JSONL ↔ Excel for native .xlsx with proper types.
Frequently asked questions
Does TSV preserve nested objects?
No — TSV is flat. Nested objects are flattened with dot notation. Use JSONL ↔ YAML if you need to preserve nesting in a human-readable format.
Direction is auto-detected — what if I want to force it?
The auto-detect looks at the first character ({ → JSONL; anything else → TSV). Wrap your TSV in a code block or ensure the first line is the header, not data, to avoid ambiguity.