UTILS.
100% 浏览器内运行
⊞}

JSON 扁平化 / 还原

将嵌套 JSON 扁平化为点号路径键,或从扁平键还原出嵌套对象。

— 输出将显示在这里 —

关于此工具

JSON 扁平化 / 反扁平化是一款免费的浏览器内工具,可把嵌套的 JSON 转换成使用点号表示法键的单层映射,也能从这些扁平键重建出嵌套结构。粘贴 JSON 并选择一个方向:“扁平化”把每条路径折叠成一个扁平对象(例如 user.name 或 user.roles.0),而“反扁平化”把点号键重新展开成嵌套的对象和数组。

两个方向都用浏览器自身的 JSON 解析器解析你的输入,并以两个空格缩进美化输出。对象和数组会被递归遍历,数组项在路径中保留其数字索引,而叶子值——字符串、数字、布尔值、null,以及空对象或空数组——都原样保留。无效的 JSON 会显示行内错误而非输出,复制按钮可把结果放到剪贴板。

一切都在本地用 JavaScript 运行:不上传、无账户、无跟踪,也可离线使用。扁平化很适合把配置转成扁平的键值对,例如环境变量或 i18n 消息文件,用于比对深层嵌套的载荷,或重塑 API 响应,而反扁平化则是同一映射的逆过程。

常见问题

数组是如何处理的?
数组元素在键中使用其数字索引,例如 items.0.name。反扁平化时,任何全为数字的路径段都会被当作数组索引,因此这些部分会被重建为数组。
我的数据会被上传吗?
不会。解析和转换完全在你浏览器的 JavaScript 中运行,不向任何服务器发送内容,工具也可离线继续使用。
空对象和空数组会怎样?
它们被当作叶子值,在各自的键上原样保留,因此空的 {} 或 [] 会在扁平化中原封不动地保留,而不会被展开成更深的键。
先扁平化再反扁平化总能还原原始 JSON 吗?
几乎总能,但有两种情况会不同:本身就含有点号的键在反扁平化时会拆成额外的嵌套层级,而完全由数字组成的对象键会被重建为数组索引而非对象键。

更多工具