JSON 和 CSV 并不等价:转换时会丢失什么
JSON 和 CSV 并不等价:转换时会丢失什么
解释 JSON 与 CSV 转换中的嵌套、表头、引号、null、类型和电子表格假设。
原创流程图
JSON 和 CSV 并不等价:转换时会丢失什么
理解原理
检查后再进入下一步
检查边界
检查后再进入下一步
使用工具
检查后再进入下一步
CSV 有行和列,每个单元格本质上是文本,即使表格软件后来把它显示成数字、日期或公式。分隔符、引号、换行和转义规则定义文本如何拆分。它适合联系人、交易、库存和报表行,不天然适合嵌套结构。
JSON 对象能包含数组、对象、布尔值、null 和数字。一个订单可以包含客户、地址、商品、折扣和元数据。转成 CSV 时必须决定:一行一个子项、数组拼进单元格、拆成多张表,还是丢掉细节。
CSV 转 JSON 时,表头常变成对象键。大小写、空格、重复名都重要。JSON 转 CSV 时,键顺序会变成列顺序,缺失键会变成空单元格。导出前应确定稳定表头,并说明它是给人看还是给导入系统用。
JSON 能区分 null、空字符串和缺失字段。CSV 往往都表现为空单元格,除非事先约定。对于更新导入,空单元格可能表示保持不变、清空值或未知。转换前必须定义空值语义。
用表格软件打开 CSV 时,长数字可能变科学计数法,前导零会消失,日期按本地规则解析,某些开头字符会被当成公式。转换器可能输出了正确文本,但表格显示改变了含义。ID、邮编、电话和金额要看原始 CSV。
真实样例应包含字段内逗号、引号、空值,以及目标系统允许时的单元格内换行。这些情况能暴露解析器和写入器是否遵守同一套转义规则。只有简单姓名和数字的演示样例不能证明转换可靠。
先检查源结构。JSON 嵌套时,决定扁平化、拆表还是摘要;CSV 转 JSON 时,确认表头和空值规则。先转换小样例,再比较行数、键数、类型和边界值。生产导入还应在转换后做 schema 校验。
常见问题
不能。深层嵌套 JSON 往往需要扁平化规则、多张表或有意识地丢失细节。
表格软件可能把它当数字显示。原始 CSV 文本里可能仍然保留前导零。
包含逗号、引号、空值、非 ASCII 文本、嵌套字段和一个绝不能改变的值。
没有通用答案。可以一行一个子项、拼进单元格、拆多个 CSV,或把嵌套字段保留为 JSON 文本。
表格软件会按本地设置猜日期。导入前应优先使用明确格式,并检查原始文本。