TSV to JSON
Convert tab-separated values — a spreadsheet paste or a database export — into a JSON array of objects. The header row becomes keys; numbers and booleans are typed automatically.
Straight from the spreadsheet
When you copy a range of cells from Excel or Google Sheets, the clipboard holds tab-separated values — so you can paste a selection directly here and get a JSON array back. The first line is treated as the header, each following line becomes an object keyed by those headers, and values that look like numbers or true/false are converted to real JSON types instead of strings.
Forgiving by design
Blank lines are skipped, and quoted fields containing tabs or newlines are handled. If a row is genuinely malformed, you get the line number rather than a silent wrong result. The column count follows the header; extra or missing trailing cells are handled gracefully.
After conversion
Once you have JSON, explore it in the tree viewer, pretty-print it on the formatter, or turn it into typed models with JSON to TypeScript. Going back to a grid is JSON to TSV, and for comma-separated data use CSV to JSON.
Frequently asked questions
Can I paste directly from Excel or Google Sheets?
Yes — copying spreadsheet cells puts tab-separated text on the clipboard, which is exactly this format. Paste it and convert. The first row must be the header names.
Are numbers and booleans typed?
Yes. A cell that looks like a number becomes a JSON number and true/false becomes a boolean, so you do not get everything wrapped in quotes. Values that are not clearly numeric stay strings.
What separates the columns — is a comma ever used?
Only the tab character separates columns here. If your data is comma-separated, use CSV to JSON instead; this tool is fixed to tabs so commas inside values are never mistaken for delimiters.
What happens to empty cells?
An empty cell becomes an empty string for that key. Completely blank lines are skipped rather than turned into empty objects.