Boneyard Tools

TSV to JSON Converter

Paste tab-separated values and get formatted JSON as you type. A header row turns each record into an object keyed by column name, while headerless data becomes an array of arrays. Number and boolean typing is optional, and every conversion runs locally so nothing is uploaded.

How to convert TSV to JSON

  1. Paste tab-separated text into the 'TSV input' box, or click 'Load sample' to try the built-in example.
  2. Leave 'First row is a header' checked to build objects, or uncheck it to get an array for every row.
  3. Keep 'Convert numbers and booleans' checked to type values automatically, or uncheck it to keep every field as a string.
  4. Read the formatted result in the 'JSON output' box below.
  5. Click Copy to grab the JSON, or Download to save it as data.json.

Examples

Header row with typed values

name	age	active
Ada	36	true
Linus	54	false
[
  {
    "name": "Ada",
    "age": 36,
    "active": true
  },
  {
    "name": "Linus",
    "age": 54,
    "active": false
  }
]

No header row (array of arrays)

Ada	36
Linus	54
[
  [
    "Ada",
    36
  ],
  [
    "Linus",
    54
  ]
]

Typing off keeps everything as text

id	price
A1	9.99
B2	14.5
[
  {
    "id": "A1",
    "price": "9.99"
  },
  {
    "id": "B2",
    "price": "14.5"
  }
]

Frequently asked questions

What is TSV?

TSV stands for tab-separated values. It stores a grid of rows and columns like CSV, but a single tab character separates the fields instead of a comma. Spreadsheets export TSV when you copy a selection, and it is the default when you paste from Excel or Google Sheets.

How is TSV different from CSV?

Both are plain-text tables. TSV splits fields on tabs, so a value can contain commas without any quoting. CSV splits on commas and wraps any value that contains a comma or quote in double quotes. TSV is simpler when your data has lots of punctuation but no tabs.

Does the first row become the object keys?

When 'First row is a header' is checked, yes. Each column name in the first row becomes a JSON key and every later row becomes an object using those keys. Uncheck the box and each row is emitted as a plain array in column order instead.

How does automatic typing decide what to convert?

With 'Convert numbers and booleans' checked, a field that looks like a number becomes a JSON number and the literals true and false become booleans. Everything else, including text and empty cells, stays a string. Turn the option off to keep every field as text, which matters for zip codes or IDs with leading zeros.

What happens to rows that have too few or too many columns?

Ragged rows are kept, not rejected. A short row simply leaves the missing keys out of its object, and an extra field is still parsed. Only broken quoting is treated as a hard error and stops the conversion with a message.

Are blank lines a problem?

No. Empty lines are skipped, so a stray blank row in the middle or at the end of your paste will not add an empty record to the output.

Is there a size limit?

There is no fixed row cap. The parser runs in your browser, so the real limit is your device memory. Very large pastes may take a moment to format, but typical spreadsheet exports of a few thousand rows convert instantly.

Can I convert the JSON back to TSV or CSV?

Not here, but this tool pairs with our JSON to CSV converter for the reverse trip and with CSV to JSON when your source uses commas instead of tabs.

Is my data uploaded anywhere?

No. Parsing happens entirely in your browser using client-side JavaScript, so your TSV never leaves your device and nothing is stored on a server.

Learn more

  • TSV vs CSV: when tabs beat commas

    Why tab-separated files avoid the quoting headaches of CSV, where each format shines, and how to move data between them without corruption.

Related tools