为什么要 CSV 转 JSON
CSV 是表格数据格式,Excel 导出的默认格式。JSON 是程序友好格式,API 传输的标准。把 CSV 转 JSON,让表格数据能直接被程序消费。
常见场景:
- Excel 数据导入网站数据库
- 表格数据对接 API
- 数据分析结果转给前端渲染
- 配置从表格迁移到 JSON 文件
CSV 和 JSON 的区别
CSV 格式
name,age,city
Tom,25,北京
Jerry,30,上海
- 纯文本,逗号分隔
- 第一行是表头
- 每行一条记录
- 无类型(都是字符串)
- 无嵌套结构
JSON 格式
[
{"name": "Tom", "age": 25, "city": "北京"},
{"name": "Jerry", "age": 30, "city": "上海"}
]
- 结构化,键值对
- 有类型(字符串、数字、布尔)
- 支持嵌套
- 程序直接解析
转换原理
表头映射
CSV 第一行是表头,转 JSON 时表头变成对象的键:
- 表头:name, age, city
- 第一行数据:Tom, 25, 北京
- 转换:{"name": "Tom", "age": "25", "city": "北京"}
数据类型识别
CSV 所有值都是字符串。转 JSON 时可智能识别类型:
- 数字:"25" → 25(数字)
- 布尔:"true" → true(布尔)
- 空值:"" → null(空)
- 字符串:保持字符串
不识别类型则全部按字符串处理。
数组生成
CSV 每行一个对象,所有行组成数组:
[
{对象1},
{对象2}
]
嵌套结构
问题
CSV 是扁平表格,JSON 支持嵌套。怎么把扁平 CSV 转成嵌套 JSON?
方法一:点号键名
CSV 表头用点号表示层级:
name,address.city,address.zip
Tom,北京,100000
转 JSON:
{
"name": "Tom",
"address": {
"city": "北京",
"zip": "100000"
}
}
方法二:数组索引
name,tags[0],tags[1]
Tom,A,B
转 JSON:
{
"name": "Tom",
"tags": ["A", "B"]
}
方法三:分号分隔
name,tags
Tom,"A;B;C"
转 JSON:
{
"name": "Tom",
"tags": ["A", "B", "C"]
}
转换步骤
1. 准备 CSV
确保 CSV 格式正确:
- 第一行是表头
- 字段用逗号分隔
- 含逗号的字段用双引号包裹
- 含双引号的字段用两个双引号转义
2. 上传或粘贴
把 CSV 内容粘贴到转换工具,或上传 CSV 文件。
3. 配置选项
- 是否识别数据类型
- 嵌套结构处理方式
- 输出格式(数组还是逐行对象)
4. 转换
工具自动转换,输出 JSON。
5. 校验
检查 JSON 结果是否符合预期:
- 字段是否正确
- 类型是否正确
- 嵌套是否正确
常见问题
含逗号的字段
CSV 字段含逗号要用双引号包裹:
name,desc
Tom,"Hello, world"
不包裹会被当成两个字段,转换出错。
中文乱码
CSV 用 UTF-8 编码。Excel 默认可能是 GBK,导出时选 UTF-8。
空值处理
CSV 空单元格转 JSON 是空字符串 "",还是 null?
- 默认:空字符串 ""
- 智能识别:null
- 看工具选项
数字精度
大数字转 JSON 可能丢失精度。如身份证号 18 位,转数字会变成科学计数法。身份证号要按字符串处理(CSV 里加前导引号或转换时指定字符串类型)。
日期格式
CSV 日期格式不统一(2024-01-01、2024/1/1、Jan 1 2024)。转 JSON 保持字符串,前端再解析。
BOM 头
Excel 导出的 CSV 可能带 BOM 头(\uFEFF),导致第一个字段名前有不可见字符。转换工具应自动去除 BOM。
转换技巧
预处理 CSV
转换前在 Excel 里整理:
- 删除空行
- 统一日期格式
- 检查字段完整性
选择性转换
只转需要的列。不需要的列在 CSV 里删除,减少 JSON 体积。
分批转换
超大 CSV 一次转换可能卡。分批转换,每批几百行。
结果校验
转换后用 JSON 格式化工具美化,人工抽查几条确认正确。
用 DocsAll 转换
- 上传 CSV 文件或粘贴 CSV 内容
- 工具自动解析表头和数据
- 配置转换选项(类型识别等)
- 生成 JSON
- 复制或下载结果
浏览器端转换,CSV 数据不上传服务器,适合处理敏感数据。
反向转换:JSON 转 CSV
有时需要反向,把 JSON 转 CSV:
- API 返回 JSON,导出到 Excel 分析
- 数据库 JSON 字段导出表格
JSON 转 CSV 的难点:
- 嵌套结构要拍平
- 数组字段处理(拼接或展开多行)
- 字段不统一时补齐空值
小结
CSV 转 JSON 核心是表头映射键名、数据类型识别、嵌套结构处理。注意含逗号字段、中文编码、空值和大数字精度。DocsAll CSV 转 JSON 工具 浏览器端运行,数据不外传。