本文目录
为什么要把 JSON 转换为 CSV?
JSON 非常适合 API 和编程,而 CSV 则是业务分析、电子表格工具和数据交换的首选格式。将 JSON 数据导出为 CSV,能让非技术用户也能使用这些数据,可导入 BI 工具,并兼容 Excel、Google 表格和数据库导入向导。
主要难点在于:JSON 支持嵌套结构和数组,而 CSV 是扁平的。将复杂的嵌套 JSON 转换为 CSV 需要做出扁平化决策:哪些嵌套属性要变成列,以及数组该如何处理。
JSON 转 CSV 的工作原理
转换工具会将 JSON 对象扁平化为一行行数据,并根据键生成列标题。
- 键提取——扫描 JSON 数组,识别出所有对象中出现过的全部唯一键
- 嵌套扁平化——将嵌套对象转换为点号表示的列(user.name → user_name)
- 缺失值处理——对于缺少某些键的对象,用空字符串填充相应的空列
免费试用 —— 无需注册
将 JSON 转换为 CSV →何时使用 JSON 转 CSV
每当结构化数据需要提供给电子表格用户使用,或需要导入表格型系统时,JSON 转 CSV 都很有用。
- 报表——将 API 数据导出为 CSV,用于在 Excel 或 Google 表格中做业务报表
- 数据库迁移——将 JSON 文档的导出内容转换为 CSV,以便导入关系型数据库
- 数据共享——从 JSON 格式的 API 响应生成 CSV 文件,供不具备编程技能的相关人员使用
常见问题
在转换为 CSV 时如何处理 JSON 数组?
JSON 对象中的数组是最棘手的情况。可选做法包括:将数组元素以逗号分隔的字符串形式放入单个 CSV 单元格;为每个数组元素创建单独的行(将数组展开);或将数组序列化为 JSON 字符串。最佳做法取决于数组的内容及其预期用途。
转换过程中 JSON 里的 null 值会怎样?
JSON 的 null 值通常在生成的 CSV 中表示为空单元格。这能与大多数 CSV 解析器和电子表格应用保持兼容。将 CSV 重新导入数据库时,null 的处理方式取决于导入配置。
JSON 转 CSV 能处理深度嵌套的对象吗?
深度嵌套的对象可以在合理深度内使用点号表示法进行扁平化。非常深的嵌套(4 层以上)会产生又长又难读的列名(user.address.city.district.name)。对于深度嵌套的数据,请考虑 CSV 是否是合适的输出格式,或者是否应在转换前先将结构做去规范化处理。