工具箱

CSV 与 JSON 的区别:表格数据与嵌套数据的边界

CSV 和 JSON 是数据导出场景最常见的两个选项:CSV 用一行一条记录的朴素结构统治了电子表格和数据库导入导出;JSON 用灵活的嵌套结构承包了现代 API。它们的分界线其实是「数据形状」——扁平表格归 CSV,层级关系归 JSON。

对比维度CSVJSON
结构表达力只有二维表:每行一条记录、每列一个字段,无法表达嵌套与一对多对象可无限嵌套,数组表达一对多,复杂业务对象一个文件装下
类型信息一切皆字符串,「1.0」「01」「true」是什么类型全靠读取方猜测类型显式写进语法,字符串带引号、数字不带,跨系统语义一致
同数据体积最小。没有键名重复、没有括号开销,纯表头加值每个对象都重复键名并附带结构符号,通常比 CSV 大 30–100%
Excel 与数据库兼容Excel 双击即开;MySQL、PostgreSQL 等都有原生 LOAD DATA 导入通道Excel 需借助 Power Query 或插件;数据库需先解析再逐行插入或用 JSON 字段类型
转义陷阱规则因「方言」而异:引号包裹、双引号转义、换行处理各家实现不一,是数据错位的重灾区转义规范统一且简单(反斜杠 + 固定集合),实现间几乎不存在分歧
流式处理能力天然按行流式,GB 级文件也能恒定内存逐行消费标准 JSON 必须整体载入;大文件要用 NDJSON 或增量解析器才能流式
适用场景报表导出、批量数据迁移、给业务人员看的表格交付API 响应、配置文件、含子对象或数组的复杂记录交换

何时选 CSV?

数据本质是规整的行列表格、接收方是人或电子表格/数据库时选 CSV。注意生成端要统一方言(UTF-8 编码、引号规则),并在文件头声明 BOM 以便 Excel 正确识别中文。

何时选 JSON?

记录包含嵌套对象、数组或不定长字段,以及接口直接被程序消费时选 JSON。它的类型系统和转义规则让跨语言协作免于「这列到底是数字还是文本」的扯皮。

相关在线工具

常见问题

为什么用 Excel 打开 CSV 中文会乱码?

Windows 版 Excel 默认按 ANSI 编码解读无 BOM 的文件。导出时使用 UTF-8 并带上 BOM 头,或在导入向导中手动指定编码即可解决。

字段里包含逗号和换行怎么办?

标准做法是用双引号包裹整个字段,内部的双引号写成两个连续双引号。但不少简易解析器不支持这种转义,跨系统交换前务必测试往返一致性。

大数据量导出应该选哪个?

优先 CSV:体积小、可逐行流式写入、数据库有原生高速导入通道。若必须 JSON,考虑 NDJSON(每行一个独立对象)以保留流式能力。

延伸说明

两者在真实链路里常常接力:后端从 API 拿到 JSON,转换成 CSV 交给财务;爬虫抓到的 CSV 导入数据库后又以 JSON 形式吐给前端图表。掌握双向转换是数据处理的基本功——站内提供 JSON 转 CSV、CSV 转 JSON 的在线工具,支持批量与本地校验,能在导入前提前发现分隔符错位或类型歧义,避免脏数据入库。

← 返回对比列表