嵌套 JSON 转 CSV:选择你的行和列
两条记录、五列,以及 CSV 无法保留的细节。
JSON 文件可能嵌套了多层数据,而 CSV 需要明确的行和列。转换前,先选出要做成表格的那组记录,再决定如何处理每条记录里的嵌套值。
这个示例 JSON 在 data.items 下包含两个创作者。每个创作者都有一个嵌套的 creator 对象、一个 tags 数组和一个 note 字段。其中一个备注是 null;另一个是空字符串。
先选择记录,再选择列
打开 CSV、JSON 和 YAML 转换器,导入示例,在 从 中选择 JSON,然后在 至 中选择 CSV。打开 选项,将 数据路径(可选) 设置为 /data/items。
如果不设置该路径,外层对象会变成一行。设置后,两个项目会变成两行。路径用于选择数据;它不会重命名字段,也不会搜索匹配的值。
路径使用斜杠分隔的名称,遵循 JSON Pointer 表示法。输入 /data/items,而不是 data.items。如果字段名本身包含斜杠,用 ~1;波浪号本身则写成 ~0。
决定嵌套对象是否应放在一个单元格中
关闭 展平嵌套对象 后,列将是 id、creator、tags 和 note。创作者对象作为 JSON 文本占据一个 CSV 单元格。这是有效的 CSV,但如果你想按国家排序,会很不方便。
开启展平后,列变为:
/id
/creator/name
/creator/region
/tags
/note
现在 Zoë 和 AU 有了自己的单元格。带斜杠前缀的标题描述了每个值的来源。它们还避免将字面字段 creator.name 与嵌套字段 name 混淆。
比较嵌套单元格 CSV 和展平 CSV。两者都有两行数据。CSV 单元格中 JSON 周围的重复引号是转义,而不是重复数据。
数组不会变成额外的行
展平会展开嵌套对象。它不会将数组拆分为多行,也不会为每个数组条目创建单独的列。在此示例中,/tags 仍然在一个单元格中包含单个 JSON 数组:
["design","video"]
如果你的电子表格需要每个标签一行,请先按这个结构整理数据。决定是否在每行重复创作者的 ID,以及如何表示空标签列表。转换器不会为你做这些决定。
如果需要稍后重建,请保留 JSON
CSV 格式本身无法区分缺失值、null 和空字符串。此示例中的两个备注都导出为空单元格。使用默认设置将该 CSV 转换回来,会产生两个空字符串。
转换回来的 JSON 也将 /creator/name 保留为字面键,将 /tags 保留为字符串。它不会自动重建嵌套对象或解析数组。请保留原始 JSON 作为数据源。
ID 001 在此转换器中作为文本保留。电子表格在打开 CSV 时仍可能将其解释为数字;请在该处也将 ID 列作为文本导入。对于面向电子表格的导出,请保持 保护 CSV 免受电子表格公式影响 开启,并在共享前检查文件。
我们检查了什么
2026 年 10 月 8 日,我们使用与工具相同的转换函数运行了示例。我们检查了两种 CSV 变体、它们的两行数据、展平后的五列以及转换回 JSON 的结果。结果文件 包含输出和下载哈希。
表格预览最多显示 500 行;预览行数不等于导出文件的总行数。处理较大数据集时,请检查显示的总数和下载的文件。