主题
JSON 转 Excel
接口返回一堆 JSON,产品经理要一份能在 Excel 里筛选排序的表。

打开「JSON 转 Excel」看到的初始界面。在浏览器本地完成、数据不离开浏览器,免费。
嵌套结构是主要难点
JSON 是树状的,Excel 是平的。这个矛盾决定了转换的全部难点。
json
{"user": {"name": "张三", "tags": ["a","b"]}, "score": 90}user.name 好办——展平成一列 user.name。但 tags 是数组,只有两种处理:拼成一个字符串 a,b,或者拆成 tags.0、tags.1 两列。两种都会让下游的人困惑。
转换前先确认数据是不是「平的」——每条记录都是一层键值对。不平的话,先决定嵌套字段怎么处理再转。
嵌套处理选项
自动——按启发式规则展平,对象展成 a.b 形式的列名,数组拼成字符串。多数场景够用。
如果自动处理的结果不理想,更可靠的做法是在数据源头就把结构拍平——比如在接口层面只取需要的字段。工具能做的只是猜测,源头改造才是根治。
字段顺序与缺失值
JSON 对象的键是无序的,不同记录的字段也可能不一致。转换时会取所有记录字段的并集作为表头,缺失的单元格留空。
这带来一个需要注意的点:如果第一条记录缺了某个字段,不要以为那一列没有——往下翻可能就有了。
前导零和大数字
和 CSV 一样的坑,但方向相反:
JSON 里 "orderId": "00123" 是字符串,转成 Excel 后如果被识别成数字,前导零就没了。同样,超过 15 位的数字(比如身份证、雪花 ID)在 Excel 里会丢失精度——它用双精度浮点存数字,15 位以上不可靠。
做法:这类字段在 Excel 里应该是文本格式。转换后抽查几个长数字,看末尾几位对不对。
自动列宽和表头样式
默认开启。给表头加粗、按内容调整列宽。
纯粹是可读性优化,不影响数据。要把结果喂给别的程序时可以关掉。
浏览器本地处理
数据不上传。
相关工具
- CSV ⇄ JSON 转换 —— 要的是 CSV 而不是 xlsx
- 表格处理 —— 转出来后要合并、去重
- 代码格式化/压缩 —— 转换前先校验 JSON 合法性