TSV to JSON Converter
Convert tab-separated values to JSON. Parses quoted fields with embedded tabs and newlines, optionally treats the first row as headers, and infers numbers, booleans and null. Outputs an array of objects or array of arrays, pretty or minified. Runs entirely in your browser.
Input
Options
On: array of objects keyed by the header row. Off: array of arrays.
On: 42 → number, true/false → boolean, null → null. Off: everything stays a string.
Output
Guides
Turn tab-separated values into clean JSON in one step. Paste a TSV export from a spreadsheet, database, or analytics tool, or upload a .tsv/.txt file, and get a well-formed JSON array back instantly. Everything runs in your browser — your data never leaves your machine.
What is TSV?
TSV (tab-separated values) is the plain-text cousin of CSV. Instead of commas, columns are separated by tab characters, which makes it a natural fit for data that already contains commas — addresses, prices, or free-form notes — without needing to quote every field. Excel, Google Sheets, and most databases can export TSV directly, and copying a range of cells to your clipboard usually produces TSV too.
How to use it
- Paste your TSV into the input box, or upload a file.
- Choose your options (headers, type inference, output shape, indentation).
- Copy or download the JSON from the output pane.
The conversion is instant and updates as you type.
Options
First row contains headers — when on, the first line becomes the keys of each object and every following row becomes one object: [{ "name": "Alice", "age": 30 }, …]. Turn it off to get a plain array of arrays, with every row (including the first) kept as-is.
Type inference — when on, cells that look like numbers, booleans, or null are emitted as real JSON types: 30 becomes the number 30, true/false become booleans, and null becomes null. Turn it off to keep every value as a string, which is safer when a "number" is really an ID, a zip code, or a phone number that must preserve leading zeros.
Output format — Array of objects (the default) keys each row by the header row; Array of arrays gives you the raw grid of rows and cells.
Empty values as — decide what a blank cell becomes: null, an empty string, or (in objects mode) excluded from the object entirely so the key is simply absent.
Indent — pretty-print with 2 spaces, 4 spaces, or a tab, or choose Minified for the most compact single-line output.
Quoted fields
Fields wrapped in double quotes may contain tabs and newlines as literal data, and a doubled quote ("") inside a quoted field is treated as a single escaped quote — the same convention CSV uses. That means a cell like "Smith, John" or a multi-line note survives the round trip intact.
Does my data get uploaded anywhere?
No. Parsing and conversion happen entirely in your browser with JavaScript. Nothing is sent to a server, so it's safe for private or sensitive datasets.
What's the difference between this and a CSV converter?
Only the delimiter. TSV uses tabs between columns; CSV uses commas. If your file's columns are separated by commas, use the CSV to JSON converter instead — the options and output are otherwise identical.
Why keep numbers as strings?
Type inference is convenient, but it will turn an identifier like 007 into the number 7 and drop the leading zeros. When a column holds IDs, postal codes, or phone numbers, turn type inference off so those values stay exact strings.