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 扁平化 / 还原

  1. 用模式开关选择「扁平化」或「还原」。
  2. 将你的 JSON 粘贴到左侧的输入面板。
  3. 如需非默认设置,请设定分隔符,以及在扁平化时设定数组键风格。
  4. 在右侧查看转换后的 JSON,然后复制或下载它。

示例

输入

{
  "user": { "name": "Ada", "roles": ["admin", "dev"] },
  "active": true
}

输出

{
  "user.name": "Ada",
  "user.roles.0": "admin",
  "user.roles.1": "dev",
  "active": true
}

嵌套对象和数组项会变成以其索引结尾的点记法键。

常见错误与故障排除

常见问题

数组是如何被扁平化的?
每个数组项会成为自己的键,以该项的索引结尾,因此 arr[10, 20] 会扁平化为 {"arr.0":10,"arr.1":20}。你可以切换到括号风格,改为得到 arr[0] 和 arr[1],而「还原」能将任一形式读回为真正的数组。
我可以更改键分隔符吗?
可以。分隔符默认是点,但你可以将它设为任意字符或短字符串 —— 例如 / 或 __。还原时请使用相同的分隔符,以便路径能正确拆分回去。
先扁平化再还原是无损的吗?
对于格式良好的 JSON,往返会返回完全相同的数据:对象、数组、字符串、数字、布尔值、null 以及空容器都会被保留。唯一要避免的是使用一个同样会以字面形式出现在键名内部的分隔符。
点风格和括号风格的数组键有什么区别?
纯粹是索引的书写方式不同:点风格给出 arr.0,而括号风格给出 arr[0]。两者描述的是同一个数组位置,且「还原」步骤都能理解,所以选你的其他工具所期望的那种即可。
我为什么要扁平化 JSON?
扁平的路径/值映射更便于逐行对比、存入环境或配置文件、对齐为电子表格的列,以及绑定到以路径为键的表单字段。当你需要时,还原能把那种扁平形态变回嵌套 JSON。
我的 JSON 会被上传到任何地方吗?
不会。扁平化和还原完全在你的浏览器中运行,因此你粘贴的 JSON 在你的设备上本地处理,绝不会发送到服务器。

相关工具

全部 ArrayKit 工具