跳到正文

JSON ⇄ CSV 互转

JSON ⇄ CSV

把嵌套 JSON 按点路径列名拍平成列,或者从表格重新拼回对象。

把一个 JSON 对象数组变成表格:一条记录一行,一个键一列。有意思的地方在于它怎么处理表格容不下的那部分 JSON——嵌套对象、数组,以及键不完全相同的记录——每一项都是你在页面顶部做的选择。

🔒 完全在你的浏览器里运行jsoncsvconverttable
嵌套对象

user.address.city 各自成为一列。

数组值

tags.0、tags.1 —— 最宽,但什么都不丢。

参差不齐的行

缺的值就是空单元格。

JSON 输入

拖入 .json 文件

在这个标签页里读取,不上传。

CSV 输出

分隔符

下载的文件带 UTF-8 BOM,免得 Windows 上的 Excel 把中文当成 GBK 读。复制按钮给你的是不带 BOM 的文本。

怎么用

  1. 粘贴一个对象数组

    这是表格想要的形状。单个对象变成一行;包着数组的对象——常见的 `{ "data": [...] }` 接口外壳——会替你拆开,并附一条说明。

  2. 决定嵌套怎么拍平

    点路径让 `user.address.city` 单独成一列,表格要筛选或做透视时就要这样。「只拍平第一层」把 `user.address` 保留为一个装着 JSON 的单元格,更小,也可逆。

  3. 决定数组怎么处理

    「每项一列」(`tags.0`、`tags.1`)什么都不丢,但表格会宽到文档里最长的那个数组。「拼接」把 `a; b; c` 放进一个单元格,读起来顺。「保留为 JSON」保留方括号,方便后面某一步再解析回去。

  4. 在预览里检查列类型

    每个列头都标着这一列实际出现的类型;有些记录缺这个键时,还会标出「出现/总数」。类型是 `mixed` 的列,通常就是导出之后会出问题的地方。

  5. 下载 CSV,或复制 TSV

    下载的 CSV 前面带 UTF-8 BOM,这样 Windows 上的 Excel 能正确打开中文。如果你是要粘贴进表格而不是打开文件,切到 TSV 用复制按钮。

常见问题

为什么用 Excel 打开是乱码?

因为文件保存时没有 BOM——Windows 上的 Excel 至今仍把没有 BOM 的 UTF-8 CSV 猜成 GBK。这里的下载按钮会加上 BOM;复制按钮特意不加,因为 BOM 粘进文本编辑器会显示成一个多余的字符。

能反过来把 CSV 转成 JSON 吗?

这个页面不能,它只走一个方向。而且这趟转换总体上是有损的:点路径的列名能重新拼回对象,但拼接后的数组无法和一个恰好含有分号的字符串区分开。

键不一样的记录会怎么样?

这就是「参差行」这个设置。「所有键」全部保留并留空;「共有键」丢掉任何不是每条记录都有的列;「第一行的键」把第一条记录当作 schema,其余的键悄悄忽略。第一种是安全的默认;下游导入器拒收参差文件时你要的是第二种。

大数字安全吗?

解析是浏览器的,所以超过 2^53 的数字在建表之前就已经被舍入——电子表格打开时还会再舍一次。长 id 应该在 JSON 里就写成字符串;即使这样 Excel 也可能重新格式化它,在单元格里加个前导单引号是常用的防御。

可以从这些接进来

接下来

这些工具吃得下当前工具的产出,结果可以直接送过去。