先判断数据结构

JSON 可以表示对象、数组、字符串、数字、布尔值和 null。CSV 是由字段和记录组成的表格,没有同样的内置类型体系。需要规则的行列结构时可以使用 CSV;记录含有嵌套对象或长度不一的列表时,应优先保留 JSON。表格看起来整齐,不代表原有关系都还存在。

把标识符保留为文本

00127 这样的代码是标识符,不一定等于数字 127。将它保存为文本,导入表格软件时也将对应列设为文本。电话号码和很长的数字 ID 同样需要注意。普通 JavaScript 数值无法精确表示超过 9,007,199,254,740,991 的每一个整数。精度重要时,使用带引号的字符串,或明确支持相应数值范围的工具。

让解析器处理 CSV

带引号字段中的逗号是内容,不是列分隔符。这样的字段还可以包含换行,内部双引号则需要转义。因此,简单地按每行的逗号切分并不可靠。转换前核对分隔符、表头、重复列名,以及各条记录的字段数。不要把验证失败的记录悄悄丢弃。

为嵌套数据指定映射规则

一张包含多个商品的订单,需要明确的导出方式。可以用带订单 ID 的独立商品表,也可以将列表保存为一个单元格中的 JSON 文本。对象展开时,如果键名本身含有选定的分隔符,就可能出现含糊的字段名。记录映射方式,并在重新导入时遵守同样规则。格式化或排序对象键名,不等于可以任意改变数组顺序。

先用少量数据做一次往返验证

挑选有代表性的样本转换,再导入回来,比较记录数量和关键字段。样本应包含带重音字符、空字符串、null、引号以及多行文本。用表格软件打开不可信 CSV 时,检查可能被解释为公式的单元格,并使用文本导入设置。保留原始文件和转换参数;这些检查能发现“下载成功”提示无法反映的含义变化。

本文由编辑根据下方来源资料整理分析。

www.rfc-editor.org · developer.mozilla.org