TSV to JSON

Turn tab-separated rows into JSON records.

Input
TSV input
Output
Result
Options

Values with leading zeros stay strings so IDs are preserved.

Spaces per level of nesting.

About this tool


TSV to JSON follows the same model as CSV to JSON, the header row supplies the keys and each subsequent row becomes one object, but the parsing step is simpler and more reliable, because tab-separated fields need no quote handling.

This is a good route for spreadsheet data specifically: copy a range, paste it here, and get JSON records without saving a file or dealing with CSV quoting at all.

How to use it

  1. Paste or upload TSVDrop a .tsv file onto the input pane, use the file picker, or paste the text directly.
  2. Adjust the options if neededThe defaults suit most input. Open Options to change how values are interpreted or formatted.
  3. ConvertPress Convert to JSON, or use Ctrl+Enter (Cmd+Enter on macOS).
  4. Read any warningsWarnings explain anything that could not be represented exactly in the target format.
  5. Copy or downloadCopy the result, or download it as a .json file.

Worked examples


Each example below is executed against this tool by the test suite, so what you see is what the tool actually produces.

TSV to JSON

Input

id	name	active
1	Alice	true
2	Bob	false

Output

[
  {
    "id": 1,
    "name": "Alice",
    "active": true
  },
  {
    "id": 2,
    "name": "Bob",
    "active": false
  }
]

Headers become keys; ids become numbers and the active column becomes booleans.

What to watch for


The details that decide whether a conversion is correct, and where information can be lost without any error being raised.

Splitting is unambiguous
Fields are separated strictly on tabs. Because TSV values cannot contain a literal tab, there is no quoting to interpret, so a value containing commas, quotes or apostrophes passes through untouched. None of them are special here.
Type inference stays conservative
Clear numbers become numbers, true and false become booleans, and null becomes null. Anything that might be an identifier is kept as a string: 007 retains its leading zero, and integers too large for JavaScript to represent exactly stay text rather than being silently rounded.
Headers must be unique
JSON objects cannot repeat a key, so a duplicated column name is suffixed, two "name" columns become name and name_2, and a blank header becomes column_1, column_2 and so on by position. Nothing is dropped.
Pasting straight from a spreadsheet
Selecting cells in Excel, Google Sheets or Numbers and copying puts tab-separated text on the clipboard, so you can paste directly into the input pane. This is the fastest way to turn part of a sheet into JSON fixtures or a request body.

Limitations


  • Output is always a flat array of objects; TSV has no nesting to read.
  • Fields beyond the header count are dropped, with a warning.
  • Processing happens in your browser, so very large inputs are bounded by available memory. Files above roughly 10 MB are handled but will feel slower, and multi-hundred-megabyte files are better suited to a command-line tool.

Questions


Can I paste directly from Excel or Google Sheets?
Yes. Copying a cell range puts tab-separated text on your clipboard, which is exactly what this tool expects, no file export needed.
Why is my ID still a string?
Values with leading zeros, and integers beyond JavaScript's exact range, are kept as strings deliberately so the original value is not corrupted.
Can it produce nested JSON?
No. TSV is flat, so the output is a flat array of objects. A column named user.name becomes the literal key "user.name".