CSV ⇄ JSON
在线 CSV 与 JSON 双向转换工具,可自定义分隔符、首行是否作为字段名,支持对象数组与二维数组两种输出格式,结果可复制或下载。全部在本机浏览器完成。
两个方向,一个开关决定结构
CSV 转 JSON 时,勾上「首行是表头」得到对象数组(首行字段名当键,每行一个对象);不勾则得到二维数组,适合没有表头的纯数据。方向可以一键交换,交换时输入内容会保留。
表头重名时会自动加 _2 后缀,不会出现后面的列覆盖前面的列这种静默丢数据的情况。JSON 转 CSV 时,对象数组会取所有键的并集当表头,缺列的行补空,保证输出是规整的矩形。
分隔符可以自动判断
逗号、分号、制表符、竖线都支持,也能选「自动」—— 按首行里哪个符号出现次数最多来定。欧洲导出的 CSV 常用分号、日志常用制表符,自动判断省得先打开文件看一眼。
粘贴或拖入 .csv / .tsv / .txt 都可以,文件上限 8MB,超过会提示先拆分。
引号规则是按 RFC 4180 实现的
这是自己写的解析器,而不是简单按逗号切开:字段被引号包起来时,里面的逗号和换行都算内容的一部分;字段内部的引号用两个引号转义。UTF-8 BOM 会自动去掉,CRLF / CR / LF 三种换行都认。
现实里的 CSV 经常带换行和转义,按逗号硬切会把一行数据切成好几行 —— 这一步是转换结果对不对的关键。
类型推断有明确的取舍
看起来是数字的会转成数字,true / false 转成布尔,其余保持字符串。取舍在边界上:像 007 这样的工号、超过十几位的订单号、1e5 这类写法都保持字符串,不会被转成数字而丢掉前导零或精度。
反过来说,如果你需要 007 变成数字 7,得在拿到 JSON 之后自己处理 —— 工具优先保证「不破坏原数据」,而不是猜你想要什么。
导出的 CSV 可以带 BOM
导出时可选加 UTF-8 BOM,也可选 CRLF 换行。BOM 的用处很实际:Excel 在 Windows 上打开无 BOM 的 UTF-8 CSV 时中文经常是乱码,勾上这个就能直接双击打开。
给程序读取时则通常不需要 BOM(部分解析库会被开头的 BOM 绊倒),这时候不要勾。
本地转换,表格不上传
解析和生成都在浏览器里完成,没有网络请求。客户名单、含手机号或金额的表单可以直接粘进来转换。
结果文本框可以复制,也能下载成 data.json 或 data.csv。表格预览只渲染前 50 行,完整数据在文本框里 —— 预览是给你看结构对不对的,不是全部结果。
常见问题
为什么 007 没有被转成数字 7?
刻意保留字符串。工号、长订单号这类值一旦转成数字就会丢掉前导零或精度,工具优先保证不破坏原数据。
Excel 打开导出的 CSV 是乱码怎么办?
导出时勾上 UTF-8 BOM。Windows 版 Excel 对无 BOM 的 UTF-8 文件常按本地编码解读,加上 BOM 就能正确识别。
字段里有逗号或换行会被切坏吗?
不会。解析按 RFC 4180 实现:被引号包裹的字段内的逗号和换行都属于内容,内部引号用两个引号转义。
支持多大的文件?
上限 8MB。更大的表格建议先拆分,或改用命令行工具处理。