CSV转JSON
自动检测表头,将CSV转换为JSON。
CSV转JSON是什么
把 CSV 转成 JSON 数组,第一行自动当表头,分隔符由程序自动识别(逗号、分号、制表符、竖线都行)。默认就是表格视图:可以直接编辑单元格、从 Excel 整块粘贴,右侧实时输出 JSON。输出区除 JSON 原文外还有树形视图,字段多、层级深时逐层展开比读整段文本更快。做数据导入、写接口 mock 数据时,比手写 JSON 快得多。
所有计算都在你的浏览器本地完成,输入的内容不会上传到服务器。
怎么用CSV转JSON
- 打开页面即是表格视图,示例数据已填好;也可以点「文本」粘贴一大段 CSV,会自动解析成表格
- 在表格里直接改单元格;从 Excel 复制的区域,选中单元格后 Ctrl+V 即可整块粘入
- 先决定要不要勾 Typed values:勾选后数字、布尔会转成真正的类型,不勾选则全部是字符串
- 输出区实时更新,分三个页签:JSON 原文用于复制与下载、预览页带语法着色、树形视图可逐层展开查看每个对象的字段
- 点复制按钮取走,或用输出区的下载按钮保存
示例
输入
name,age,city
张三,28,北京
李四,31,上海输出
[
{
"name": "张三",
"age": "28",
"city": "北京"
},
{
"name": "张三",
"age": "31",
"city": "上海"
}
]不勾选 Typed values 时 age 也是字符串;勾选后 age 会变成数字 28 / 31
常见问题
支持手动指定分隔符吗?
不支持。分隔符由 detect-csv 自动判断,常见的逗号、分号、制表符、竖线都能识别出来,界面上没有分隔符选项。
为什么一直提示 CSV 无效?
这是「文本」视图的校验规则:要求文本里同时包含分隔符和换行符。只有一行、或每行只有一列,都会被判为无效,哪怕它确实是合法的单列 CSV。表格视图没有这个限制,直接粘贴编辑就行。
表格数据会上传吗?
不会。转换在浏览器本地完成,CSV 和生成的 JSON 都不离开本机。
表头有重复列名怎么办?
后一个会覆盖前一个,同一行里只保留最后一个同名列的值。转之前先确认表头没有重名。
表格里改的内容,文本视图能看到吗?
能。切到「文本」视图时会把当前表格按 CSV 文本重新展示;反过来在文本视图里改动,也会立刻解析回表格,两边始终是同一份数据。
小提示
- 不勾选 Typed values 时所有值都是字符串,1 会变成 "1";勾选后 null 变成 null,而空单元格会变成 undefined —— undefined 在 JSON.stringify 时会被直接丢掉,那一行的这个键会整个消失
- 分隔符是自动识别的,识别不出来时退化为逗号。中文 Excel 导出的 CSV 常带 BOM,表头第一个键名会多出一个看不见的字符,最好先在编辑器里转成无 BOM 的 UTF-8
- 「文本」视图里,带引号且内部有换行的字段会被切坏:程序是先按 \n 切行、再按分隔符切列,引号里那个换行会被当成新的一行。表格视图没这个问题——从 Excel 复制含换行的单元格粘进网格,换行会保留在单元格里
- 表格是唯一数据源:右侧 JSON 永远按当前表格计算,切到「文本」视图只是换了一种展示和粘贴的方式,不会改变输出