CSV 是什么
CSV 是纯文本文件,一行一条记录,字段之间用逗号分隔。没有类型,没有格式,也没有第二个工作表。所有值在被下游程序解释之前都只是文本。
几乎所有数据库、分析工具和电子表格软件都能读写它,所以导出功能默认给的就是它。
JSON 是什么
JSON 是描述嵌套数据的文本格式:带键名的对象、数组、字符串、数字、布尔值和 null。它没有日期类型,也没有注释语法。
所有 Web API、大部分配置文件,以及任何跟 JavaScript 打交道的东西。
CSV 转成 JSON 时会发生什么变化
读 CSV 要先猜三件文件本身没有写明的事:用什么字符分隔字段、引号怎么处理、字节是什么编码。这里会从前几行推断分隔符,正确处理引号内包含逗号和换行的字段,并按 UTF-8 读取。
结构由你选。对象数组是默认值,也是大多数代码期望的形式。二维数组体积更小。每列一个数组适合图表库。以第一列为键的对象适合做查表。
每一行变成一条记录。表头成为键名,每行成为一个持有这些键的对象。
空单元格需要你做一个决定,因为 CSV 表示「没有值」只有一种写法,JSON 有三种:空字符串、null,或者干脆不要这个键。默认是空字符串,因为它能来回转换而不失真。
重复的表头名在 JSON 对象里会撞键,所以第二个会加后缀。两个都叫 name 的列会变成 name 和 name_2,而不是一个悄悄覆盖另一个。