CSV 转 JSON / JSON 转 CSV 在线转换

免费在线 CSV 与 JSON 双向转换,纯前端本地处理,文件不上传服务器。支持 GBK / GB18030 / Big5 编码自动识别——Excel 导出的中文 CSV 不再乱码。正确处理引号转义与字段内逗号换行,分隔符自动检测。

中文 CSV 乱码的话,请用「选择 CSV 文件」而不是粘贴。 原因见下。转换边打边做,Ctrl / Cmd + Enter 可立即转换。
为什么粘贴的 CSV 会乱码,选文件就不会

浏览器把输入框里的内容一律当成 UTF-8。而 Excel 在中文 Windows 上 导出的 CSV 是 GBK——粘贴的时候,字节已经被浏览器按错的编码解过一遍了, 原始字节早就丢了,后面再怎么处理都救不回来。

所以编码功能只在「选择文件」时可用:那时能拿到文件原始字节, 先判断编码再解码。这个工具用浏览器原生的 TextDecoder, 支持 GBK / GB18030 / Big5,不依赖任何第三方库。

选完文件后,选项行会显示「按 XXX 解码」——猜错了就手动换一个编码, 会立刻重新解一遍。

「推断数字 / 布尔」为什么默认是关的

打开它,123 会变成数字、true 会变成布尔。 但它默认关闭,因为搞错会毁数据:

  • 00123 是邮编或工号,转成 123 前导零就没了。 工具会识别出这种写法并保持字符串。
  • 手机号、身份证号有 15 位以上,超过 JavaScript 安全整数范围, 转成数字会丢精度(末几位变 0)。 工具对超过 15 位的数字也保持字符串。

宁可保守,不可毁数据。确实需要数字类型时再手动打开。

下载的 CSV 用 Excel 打开还是乱码

那是反过来的问题:Excel 打开一个没有 BOM 的 UTF-8 CSV 时, 会按本地编码(中文 Windows 上是 GBK)去读,中文就乱了。

勾上「加 BOM」再下载就能解决——BOM 是给 Excel 的提示, 告诉它"这是 UTF-8"。代价是部分解析器会把第一个字段名读成带 \uFEFF 前缀的怪东西,所以做成了可选项。

支持什么格式
  • 按 RFC 4180 解析:字段里可以有逗号、换行、转义的双引号("")
  • 换行 CRLF / LF / CR 都认,结尾的空行会自动去掉
  • 分隔符自动检测:逗号 / 分号 / Tab / 竖线,也可以手动指定
  • 表头有重复列名时不会静默覆盖,后面的会自动加后缀区分
  • JSON → CSV 时,嵌套的对象和数组会序列化成 JSON 文本放进单元格, 不会丢内容