CSV 转 JSON 完全指南
JSON(更新于 2026年6月1日)
CSV 与 JSON 的结构差异
CSV(逗号分隔值)和 JSON(JavaScript 对象表示法)是两种最常见的数据格式,但它们的结构有本质区别:
| 特性 | CSV | JSON |
|---|---|---|
| 结构 | 扁平表格 | 嵌套树状 |
| 数据类型 | 全部为字符串 | 字符串、数字、布尔、null |
| 嵌套支持 | 不支持 | 原生支持 |
| 注释 | 不支持 | 不支持(JSON5 支持) |
| 适用场景 | 表格数据、Excel 导出 | API 响应、配置文件 |
转换规则详解
CSV 转 JSON
CSV 每一行会被转换为一个 JSON 对象,第一行作为键名(header),后续行作为值:
name,age,city
张三,28,北京
李四,32,上海
转换结果:
[
{ "name": "张三", "age": 28, "city": "北京" },
{ "name": "李四", "age": 32, "city": "上海" }
]
JSON 转 CSV
JSON 数组中的每个对象会被展开为 CSV 的一行,对象的键名组成 header 行。
使用 JSON↔CSV工具 进行转换
步骤一:准备数据
确保你的 CSV 文件格式正确:首行为表头,每行字段数一致,包含逗号的字段用双引号包裹。
步骤二:选择转换方向
打开 JSON↔CSV工具,选择「CSV → JSON」或「JSON → CSV」模式。
步骤三:粘贴或上传数据
将数据粘贴到输入区域,或直接上传 .csv / .json 文件。
步骤四:配置选项
- 分隔符:默认逗号,也支持制表符(TSV)和分号
- 是否包含表头:控制首行是否作为字段名
- 嵌套展开:JSON 中嵌套对象的处理方式
- 数字自动识别:将
"28"自动转为28
步骤五:获取结果
点击转换按钮,结果即时显示在输出区域,可一键复制或下载。
处理表头(Headers)
表头是 CSV 的核心。转换时需注意:
- 表头中的空格和特殊字符会被保留为 JSON 的键名
- 建议使用小写 + 下划线命名(如
user_name),方便后续处理 - 如果 CSV 没有表头,工具会自动生成
col_1,col_2等默认列名
处理嵌套对象
CSV 本身不支持嵌套,但有些 CSV 会用点号表示层级:
user.name,user.email,order.id
张三,zhang@example.com,1001
使用 JSON↔CSV工具 时,勾选「自动展开嵌套」选项,即可生成:
{
"user": { "name": "张三", "email": "zhang@example.com" },
"order": { "id": 1001 }
}
大文件处理技巧
- CSV 文件超过 10MB 时,建议分批转换
- 使用流式处理避免内存溢出
- 工具支持最大 50MB 文件的在线转换
- 超大文件建议先在本地用 Python(pandas)预处理
常见错误及解决方案
| 错误 | 原因 | 解决方法 |
|---|---|---|
| 字段数不一致 | 某行多/少了逗号 | 检查引号包裹是否完整 |
| 编码乱码 | 文件非 UTF-8 | 先用文本编辑器转码 |
| JSON 解析失败 | 格式不合法 | 使用 JSON格式化 修复 |
| 嵌套展开失败 | 键名层级不规范 | 检查点号分隔是否一致 |
实用技巧
总结
CSV 与 JSON 的互转是日常开发中的高频操作。掌握结构差异和转换规则,配合 JSON↔CSV工具,可以高效完成数据格式转换。遇到复杂嵌套或大文件场景时,参考本文的技巧逐一解决即可。
#CSV#JSON#数据转换#表格#开发