后端同事甩来一份接口数据,领导要的是能筛选排序的 Excel——这中间隔着一个「嵌套结构拍平」的活。手动复制粘贴既费时又容易错行。这篇讲清转换的映射规则和三条路线,几分钟出表。
JSON 转表格的核心规则:数组(Array)的每一项 = 表格的一行;对象的每个键(key)= 一列。例如:
[
{"name": "张三", "age": 28, "dept": "技术部"},
{"name": "李四", "age": 32, "dept": "市场部"}
]
转出来就是两行三列的表,name / age / dept 是表头。前提是数据得是「数组套对象」这种规整结构——真实接口数据往往不是。
{"code":0,"data":{"list":[...]}} 的包裹结构。真正要转的只有 data.list 这个数组——先用 JSON 格式化工具看清层级,把数组部分单独提出来再转;{"name":"张三","addr":{"city":"杭州","zip":"310000"}},嵌套的 addr 拍平成两列 addr.city、addr.zip(点号路径命名);"phones":["138...","139..."]),拍平时用逗号合并成一格,或者「一对多展开」成多行——前者保行数,后者保结构,按用途选。| 输出 | 适用场景 | 注意 |
|---|---|---|
| CSV | 直接用 Excel/WPS 打开、继续人工处理 | 中文 CSV 在 Excel 直接打开可能乱码,选 UTF-8 BOM 输出或用导入向导 |
| Excel 文件 | 交付给非技术同事 | 数字、日期保持原生类型,别让手机号变成科学计数法 |
| SQL | 数据入库 | 检查字符串里的引号是否被正确转义 |
交付口径的小细节:手机号、身份证号这类长数字转 Excel 后常显示为 1.39E+11——需要文本格式的列在转换前说明清楚;时间戳转日期也一样,先定好时区和格式再出表。
问:JSON 里的 null 转出来是什么?
通常转为空单元格。需要显示成「-」或「N/A」看工具选项,统计时注意空值和字符串「null」是两回事。
问:接口数据每页 20 条,分页怎么合并?
把每一页的数组分别转换后纵向拼接即可——列顺序一致时直接粘;不一致先用统一表头规整。
问:可以直接把 JSON 粘进 Excel 吗?
新版 Excel 有「获取数据」功能能处理 JSON,但嵌套拍平和批量转换不如专用工具直观,小数据除外。