更改文件格式时保持列的含义
电子表格导出文件不像数据库那样带有类型信息。值 007 可能是员工编号,而不是数字七。很长的数字 ID 可能超出常见浏览器代码所使用的精确整数范围。因此,CSV转JSON 会将每个单元格都保留为字符串。空单元格保持为空字符串,而 true 和 null 这样的词在您有意在别处更改之前,始终保持为文本。
每当字段包含逗号、引号或换行符时,CSV 的引号处理就很重要。带引号的地址可以跨越两个物理行,但仍属于同一条记录。本解析器会跟踪这种区别,并在列数不一致时报告,而不会把单元格错位到错误的标题下。表头必须唯一且不能为空。没有表头行时,工具会分配 column_1、column_2 及后续名称。
在反方向上,JSON 必须包含非空的对象数组。导出时会按首次出现的顺序使用所有对象的键的并集。缺失的字段会成为空单元格;显式的 JSON null 会变成文本 null。嵌套的数组和对象会成为一个带引号单元格内的紧凑 JSON。这对检查很有用,但 CSV 无法保留所有区别,因此无法完美地还原为原始的对象结构。
电子表格应用程序有时会把以等号开头的单元格解释为公式。默认的保护会在类似公式的单元格前加上撇号,并报告有多少个单元格被更改。这也会影响负值,并适用于列名。只有当接收应用程序需要精确的原始文本时,才应将其关闭,并请检查该应用程序如何导入文件。预览显示的是应用此导出保护之前的源值。