跳到主要内容

TSV 转 JSON 实战:从 Excel 复制粘贴直接拿到对象数组

TSV 是从 Excel、Google 表格复制单元格时拿到的制表符分隔格式。这篇讲清楚怎么把它转成 JSON 对象数组,首行做 key,给前端和接口直接用,全程浏览器本地处理。

发布于 作者 李雷
#tsv #json #数据转换 #前端 #excel

TSV 转 JSON:把表格里复制的那片单元格,变成接口能吃的对象数组

我自己最常遇到的场景是这样:产品同学在 Google 表格里整理好一批配置,圈一片单元格丢给我,说「就照这个上」。我要的是一份 JSON,塞进前端的 mock 数据或者接口请求体。中间这一步,以前我会先另存为 CSV、再找个工具转,绕一大圈。后来发现根本没必要,从表格复制出来的就是 TSV,直接转就行。

这篇把这件事讲透:TSV 是什么、为什么从表格复制粘贴能省一道工序、表头怎么自动变成对象的 key、推断类型什么时候开什么时候关。

TSV 到底是什么

TSV 是 CSV 的「制表符分隔」版本。两者都把一张表存成纯文本,一行一条记录,区别只在分列的符号:CSV 用逗号,TSV 用 tab。

这个差别看起来小,实际很关键。正常文字里几乎不会出现 tab,但逗号到处都是。一句「张三,李四」放进粗糙的 CSV 解析,会被错切成两列;放进 TSV 却安然无事,因为分隔的是 tab,文字里那个逗号只是普通字符。这也是为什么从 Excel 或 Google 表格复制选区,剪贴板里拿到的是 tab 分隔的文本,而不是逗号。表格软件就是这么干的:列间一个 tab,行间一个换行。

复制粘贴为什么能省一道工序

理解了上一节,这步就顺理成章。你在表格里选中单元格、按 Ctrl+C(Mac 上 Cmd+C),剪贴板里躺着的已经是标准 TSV。把它粘进 TSV 转 JSON 工具 的输入框,不用另存为文件,不用上传,直接出 JSON。

我第一次试的时候还有点不信,特意去对了一下:在 Google 表格里复制三行两列,粘进纯文本编辑器,看到的果然是 a[tab]b 这种结构。所以这不是什么取巧,而是数据本来就长这样,只是平时你看不见那个 tab 而已。

表头怎么做 key:首行表头做 key,每行做对象

核心规则一句话说清:首行当作字段名,后面每一行变成一个对象,字段名做 key,该行的值做 value。

如果首行是 nameageemail 这类列名,就把「首行为表头」开关留着开。转出来的 JSON 数组里,每个对象都用这些列名当 key,前端拿到手就能 item.name 直接读,不用记第几列是什么。

数据要是没有表头呢?把开关关掉。工具会从左到右把列命名为 col_1col_2col_3,每一行照样变成一个对象,只是 key 是这套占位名。日志原始转储、机器吐出来的数据常常没字段名,这时候这个开关就有用。

一个真实的例子

假设你从表格复制了这么一片(中间是 tab,这里用可见的方式表示):

name	age	active
Lin	28	true
Wang	34	false

表头开关开着、类型推断也开着,转出来就是:

[
  { "name": "Lin", "age": 28, "active": true },
  { "name": "Wang", "age": 34, "active": false }
]

注意 age 是数字 28 不是字符串 "28",active 是布尔 true 不是 "true"。这就是类型推断在干的活。把它关掉的话,所有值都会原样保留成字符串,28"28"

类型推断:什么时候开,什么时候关

这个开关决定了「光秃秃的值要不要变成真正的类型」。

开着的时候,42 变数字,truefalse 变布尔,空单元格或者 null 这个词变成 JSON 的 null。要拿去做运算、直接喂给业务逻辑,就该开。

但有一类数据千万别开:带前导零的编号。邮编、电话、账号 ID,00042 一旦被推断成数字,前面的零就没了,变成 42。这种要保真的场景,把推断关掉,所有值老老实实留作字符串。我自己定的规矩是:要做数学就开,当标识符用就关。

数据全程在本机跑

解析、类型推断、JSON 格式化,全是浏览器标签页里运行的纯 JavaScript。你粘进去的表格不会发到任何服务器,也不记录内容。有一点要留个心:分享链接会把输入写进查询字符串,所以把链接发到聊天里,这份数据会留在对方服务器的访问日志里。涉及敏感内容时,用复制按钮把 JSON 拷走,别分享网址。

反过来如果你手头的数据是逗号分隔的,那它其实是 CSV,这个工具按 tab 切会切错,换用 CSV 转 JSON 工具 就对了。

小结

从 Excel 或 Google 表格复制单元格,拿到的就是 TSV,粘进来直接转 JSON,首行做 key、每行做对象,要数字就开类型推断、要保留前导零就关。整条链路在浏览器里走完,适合前端造数据、给接口拼请求体,也适合把链接发给只会用表格的同事自己转。


Made by Toolora · Updated 2026-06-13