CSV 转 JSON
把 CSV 或 TSV 数据转换成规范的 JSON 数组,首行作为字段名。支持带引号的值、引号内的逗号以及带 BOM 的 UTF-8 文件。
把 CSV 或 TSV 数据转换成规范的 JSON 对象数组,首行作为字段名。带引号的值、引号内的逗号、转义的引号以及带 BOM 的 UTF-8 文件都能正确处理,而这些恰恰是那些只会按逗号简单切分的脚本最容易搞错的地方。
这是导出步骤的逆操作:拿一份手工维护的表格,把它转成 JSON,再喂给应用、静态站点生成器或测试夹具。数字和 true/false 会被转换成对应的 JSON 类型,你不必事后清理。
如何把 CSV 转换成 JSON
粘贴 CSV 或 TSV 数据
如果不是逗号,选择正确的分隔符
复制或下载 JSON
常见问题
带引号的字段能处理吗?
能。用双引号包起来的值里可以包含逗号、换行和转义引号,而这正是多数简单转换器出错的地方。
该选哪个分隔符?
标准 CSV 用逗号;在许多欧洲区域设置下由 Excel 导出的文件用分号;从电子表格复制到剪贴板的数据用制表符。
数字会被转换成数字类型吗?
看起来像数字的值会变成 JSON 数字,true/false 会变成布尔值,所以输出可以直接使用,无需额外解析。如果你的结构需要字符串,之后再强制转换即可。
文件开头的 UTF-8 BOM 怎么办?
它会被自动去掉,所以第一个列名前面不会多出一个看不见的字符。
空单元格会怎么表示?
表示为空字符串。如果你的结构期望的是 null,请之后再删除或转换它们。
我的数据会被上传吗?
不会,解析在你的浏览器里本地完成。
一览
| 输入 | CSV |
|---|---|
| 多个文件 | 否 |
| 运行位置 | 在你的浏览器中——文件永远不会被上传 |
| 离线可用 | 是 — 页面加载完成后 |
| 价格 | 免费,无需注册,无水印 |
选择数据格式
JSON 是 API 返回以及程序读取的任何数据的默认格式:它天然处理嵌套结构、数字、布尔值和 null,而且每种语言都能解析它。CSV 更小,能直接打开进表格软件,但它无法表达嵌套,在分隔符、引号规则和字符集上也没有共同标准——而这正是转换出错的地方。XML 冗长,但能承载属性、混合内容和模式,所以它仍然主导着文档格式和遗留系统集成。YAML 对配置来说最易读,但它对空白敏感,还有出人意料的类型强制转换(「no」会变成 false,像 1.10 这样的版本号会变成 1.1)。请选择使用方工具偏好的格式,而不是看起来最漂亮的格式。
转换在哪里悄悄出错
大多数转换缺陷与语法无关,而与含义有关。一列邮编的 CSV 字段会在表格软件猜它是数字的那一刻丢掉前导零;一个很长的 ID 会超出浮点精度;日期会因为先写日还是先写月而意思大变。JSON 的键是无序的,但数组是有序的,排序键的工具不会改变任何东西,而排序数组的工具会改变数据。Unicode 是另一个陷阱:文本可能以 UTF-8、UTF-16 或带字节顺序标记的形式到来,解码器猜错就会把带重音的字符变成乱码。在信任任何转换之前,抽查第一行和最后一行、任何带前导零的字段,以及任何含有引号、逗号或换行的字段。