100% local — your data never leaves your browser

TSV to JSON — Ready for Your Script

Turn a tab-separated table into an array of JSON objects. Field boundaries are never in doubt, so the result is ready to feed to a script or an API.

Instant Private Zero cookies
Indentation

TSV input

JSON output

What this tool does

The first line supplies the keys, each following line becomes an object, and the array of those objects is the output. Turn the header off to get an array of arrays instead, positional rather than named.

Values are typed the same way as in the CSV tool: 30 is a number, true a boolean, 01 stays the string "01" so identifiers keep their leading zeros, and an empty field becomes "" rather than null — TSV, like CSV, has no way to say a value is absent.

What TSV gets right

There is no delimiter to choose here, and that absence is the format’s main virtue. CSV asks a parser a question on nearly every character: is this quote opening a field, closing one, or is it part of the value? Get it wrong and columns shift.

TSV asks nothing. The tab separates fields, the newline separates records, and that is the whole specification. A file either parses one way or it is malformed — there is no second reading.

What it gets wrong

The same simplicity is the limitation. Because there is no quoting, a TSV value cannot contain a tab, and nothing in the format signals that one was lost or that a field was split.

So if a column here looks split in two, the damage happened before the file reached you. The remedy is upstream: re-export as CSV, where a tab fits inside a quoted field, and convert from there.

Private by design

Everything runs locally in your browser with JavaScript. Your data is never uploaded, which makes the tool safe for sensitive content, and it keeps working offline.

Frequently asked questions

Why is there no delimiter setting?
Because TSV has only one. The tab is the delimiter by definition, which is exactly what makes the format easy to parse — there is nothing to detect and nothing to get wrong.
One of my columns looks split in two. What happened?
A value in your data contains a tab. TSV has no way to express that, so the file was already ambiguous before it reached this tool. The fix belongs upstream: export as CSV, which can hold a tab inside a quoted field.
Does it type values like the CSV tool?
Yes, identically. `30` becomes a number, `true` a boolean, a leading zero keeps the value a string, and an empty field becomes an empty string rather than null.

Related converters