JSON转Excel
把JSON或NDJSON导出数据展平成电子表格。嵌套对象变成用点号命名的列,每条记录的键都会计入列名。
把文件拖到这里
.json, .ndjson, .txt · 最大300 MB
更多设置收起设置
如何转换为Excel
- 1
拖入JSON文件或粘贴文本
普通JSON和按行分隔的NDJSON都可以。直接粘贴一段接口响应,和添加文件效果一样。
- 2
指定数组位置,选择嵌套的展平方式
如果记录在data.items下面,就填写这个路径。再选择嵌套对象是否展开成列,以及数组怎样表示。
- 3
转换并下载XLSX
工作簿打开就是一张表格:表头行已冻结,列宽已经按内容调好。
接口响应不是表格
真实的接口数据几乎从来不是一个光秃秃的数组。它外面包着一层状态信息,记录放在data.items或result.rows下面,每条记录里还有嵌套对象。所以这个工具首先问你记录在哪条路径下,而不是自己去猜:猜错了会得到一张只有一行、描述外层包装的表格,看起来像是成功了,其实不是。如果路径找不到,错误信息会列出顶层实际存在的键,下一次尝试就有了依据,不必再猜。
列名来自所有记录,而不只是第一条
自己写JSON转表格代码时,最常见的错误是只从第一条记录取列名。真实导出数据里的记录参差不齐:可选的email字段到第二条才出现,discount只出现在有折扣的记录里。这里会扫描每一条记录,列名取所有键的并集,按首次出现的顺序排列,不会有数据悄悄消失。缺少某一列的行,对应单元格留空,而不是把后面的值往前挪。如果你确实只想要第一条记录的结构,可以在设置里打开,但这不是默认选项,因为悄悄丢数据比表格宽一点更糟。
嵌套、数组和单元格的上限
嵌套对象按你允许的深度展开成user.address.city这样命名的列;更深的分支写成紧凑的JSON,不再继续拆开,因为一个完全展开的GraphQL响应可能产生两万列,而Excel最多只有16,384列。数组有三种处理方式:用你选的分隔符合并到一个单元格,展开到tags.0至tags.N各列,或者写成JSON字符串。哪种合适,完全取决于你接下来要做什么。超过32,767个字符的字符串会被截断并给出提示,因为这是单元格本身的硬性上限。
数据不会离开浏览器
解析、展平和写入工作簿都在这个标签页里本地完成。接口导出的数据常常含有客户记录或访问令牌,所以这里说清楚:不上传文件,不在服务器端处理,也不保留任何副本。
常见问题
嵌套对象怎么处理?
默认展开成user.address.city这样用点号命名的列,深度由你设定。超过这个深度,剩下的分支保存为紧凑的JSON字符串,不会丢失任何内容。也可以让所有对象都按这种方式保存。
怎么指定记录所在的数组?
用点号写出它的路径,例如data.items或result.rows.0。如果路径找不到,错误信息会列出文件的顶层键,你可以看到记录到底放在哪里。
记录里的数组会怎么处理?
由你选择。“合并”把数组放进一个单元格,用你指定的字符串分隔;“列”把它展开到tags.0至tags.N,最多五十列;“JSON”把数组存成文本。默认是合并,因为在电子表格里最容易阅读。
为什么我的记录字段不一样?
接口导出数据里这很常见,工具也能处理:列名取所有记录键的并集,按首次出现的顺序排列。缺少某个字段的记录,对应单元格留空,不会让整行错位。
Excel的行数和列数上限是多少?
1,048,576行和16,384列。超过任何一项都会拒绝转换,说明原因,并给出CSV转换器的链接,CSV没有这个上限。
支持NDJSON吗?
支持。扩展名为.ndjson的文件按每行一条记录解析,所以语法错误会指出具体是哪一行,而不是一个上百MB字符串里的偏移量。
文件会上传吗?
不会。从解析到写出XLSX,全部在浏览器中完成,不经过服务器,关闭标签页后也不保留任何内容。