JSON 扁平化 / 还原
将嵌套的 JSON 扁平化为点记法键,或将其还原回去,在你的浏览器中即时完成。你的数据留在你的设备上。
你的 JSON 在浏览器本地完成扁平化与还原,绝不会上传,但请避免粘贴你不希望出现在剪贴板历史中的机密信息。
需要先美化一下?试试 JSON 格式化工具。
关于 JSON 扁平化 / 还原
这款 JSON 扁平化工具会将嵌套的 JSON 对象折叠成一个单层映射,其键是点记法路径,因此 {"a":{"b":1},"arr":[10,20]} 会变成 {"a.b":1,"arr.0":10,"arr.1":20}。切换到「还原」,它会从这些扁平路径重建原始的嵌套结构。扁平的键值形态便于逐行对比、存入 .env 或配置文件、映射到电子表格的列,或喂给以路径为键的表单库。你可以将默认的点分隔符改成任意字符,并选择数组索引读作 arr.0 还是括号风格的 arr[0]。对象键、数组、基本类型、null 以及空容器都能被处理,且往返无损。一切都完全在你的浏览器中运行,因此你粘贴的 JSON 在本地处理,绝不离开你的设备。
功能特性
- 将嵌套的对象与数组扁平化为单层的点记法键
- 将扁平的路径/值对还原回原始的嵌套 JSON
- 选择任意键分隔符 —— 默认是点 (.)
- 为数组选择点索引 (arr.0) 或括号索引 (arr[0])
- 无损往返:先扁平化再还原会得到完全相同的 JSON
- 将基本类型、null 以及空对象和空数组作为叶子值处理
- 实时双栏视图,键入时内联呈现解析错误
- 一键复制结果,或将其下载为 flat.json 或 nested.json
如何使用 JSON 扁平化 / 还原
- 用模式开关选择「扁平化」或「还原」。
- 将你的 JSON 粘贴到左侧的输入面板。
- 如需非默认设置,请设定分隔符,以及在扁平化时设定数组键风格。
- 在右侧查看转换后的 JSON,然后复制或下载它。
示例
输入
{
"user": { "name": "Ada", "roles": ["admin", "dev"] },
"active": true
}
输出
{
"user.name": "Ada",
"user.roles.0": "admin",
"user.roles.1": "dev",
"active": true
}
嵌套对象和数组项会变成以其索引结尾的点记法键。
常见错误与故障排除
- 「还原」提示它期望的是路径/值对组成的扁平 JSON 对象。 — 「还原」需要像 {"a.b":1} 这样的单层对象;如果你是从嵌套 JSON 开始,请改用「扁平化」。
- 在你期望得到数组的地方,「还原」却生成了带键 "0"、"1" 的对象。 — 数组索引必须是纯整数段。如果你的分隔符与键不一致,请设置相同的分隔符,使 0 和 1 被读作索引。
- 当两个键冲突时(例如键名内部含有字面意义的点),扁平化会丢失值。 — 选择一个不会出现在你键内部的分隔符(例如 / 或 __),让每条路径都保持无歧义。
- 输入显示 JSON 解析错误,且没有出现任何输出。 — 修复高亮处的语法 —— JSON 需要用双引号包裹键和字符串,且末尾不能有逗号。可点击「加载示例」获取一个有效的起点。
常见问题
- 数组是如何被扁平化的?
- 每个数组项会成为自己的键,以该项的索引结尾,因此 arr[10, 20] 会扁平化为 {"arr.0":10,"arr.1":20}。你可以切换到括号风格,改为得到 arr[0] 和 arr[1],而「还原」能将任一形式读回为真正的数组。
- 我可以更改键分隔符吗?
- 可以。分隔符默认是点,但你可以将它设为任意字符或短字符串 —— 例如 / 或 __。还原时请使用相同的分隔符,以便路径能正确拆分回去。
- 先扁平化再还原是无损的吗?
- 对于格式良好的 JSON,往返会返回完全相同的数据:对象、数组、字符串、数字、布尔值、null 以及空容器都会被保留。唯一要避免的是使用一个同样会以字面形式出现在键名内部的分隔符。
- 点风格和括号风格的数组键有什么区别?
- 纯粹是索引的书写方式不同:点风格给出 arr.0,而括号风格给出 arr[0]。两者描述的是同一个数组位置,且「还原」步骤都能理解,所以选你的其他工具所期望的那种即可。
- 我为什么要扁平化 JSON?
- 扁平的路径/值映射更便于逐行对比、存入环境或配置文件、对齐为电子表格的列,以及绑定到以路径为键的表单字段。当你需要时,还原能把那种扁平形态变回嵌套 JSON。
- 我的 JSON 会被上传到任何地方吗?
- 不会。扁平化和还原完全在你的浏览器中运行,因此你粘贴的 JSON 在你的设备上本地处理,绝不会发送到服务器。
相关工具
全部 ArrayKit 工具