AZ Tools

JSON 扁平化 / 还原 (点号表示法)

开发

粘贴 JSON 并在两种模式间切换。扁平化把嵌套对象或数组折叠为一个扁平对象,其键是形如 `app.server.ports[0]` 的路径 — 适合环境变量、MongoDB 更新路径、i18n 消息文件、CSV 列或对比两份配置。还原则相反,把扁平的点号键展开回嵌套结构。可选择分隔符(`.`、`/`、`_`、`-`),以及数组用方括号表示法(`items[0]`)还是点号索引(`items.0`)。空对象与空数组会作为叶子保留,因此扁平化 → 还原的往返会精确返回你输入的内容。全部在本地运行 — 你的 JSON 绝不离开浏览器。

数组:

输出 · 9 个键

{
  "app.name": "demo",
  "app.version": "1.2.0",
  "app.features[0]": "search",
  "app.features[1]": "export",
  "app.server.host": "localhost",
  "app.server.ports[0]": 8080,
  "app.server.ports[1]": 8081,
  "flags.beta": true,
  "flags.maxUsers": 100
}

除非对象键中含有分隔符,扁平化与还原是精确的互逆运算 — 若键中有点号请更换分隔符。

使用方法

  1. 选择扁平化或还原。
  2. 把 JSON 粘贴到输入框。
  3. 按目标格式设置分隔符与数组表示法,然后复制结果。

常见问题

转换可逆吗?
对常规数据可逆。用相同分隔符与数组表示法先扁平化再还原会得到完全相同的对象 — 空对象/数组与 null 值都作为叶子保留,不会丢失。唯一的例外见下。
如果对象键里含有分隔符怎么办?
那样往返会有歧义:用 `.` 分隔符扁平化得到的 `a.b` 键,与嵌套的 `a` → `b` 无法区分,还原时会被拆开。若键中含有点号,请改用键中不出现的其他分隔符(如 `/`)。
数组索引如何处理?
方括号模式下数组为 `list[0]`、`list[1]`;点号模式下为 `list.0`、`list.1`。还原时,任何方括号索引或纯数字片段都会重建为数组元素,因此扁平键 `users.0.name` 会生成对象数组。
会改变我的数据类型吗?
不会。数字、布尔、null 和字符串都按 JSON 值原样保留,只有键结构改变。输出缩进(0/2/4 空格)只影响格式,不影响内容。

相关工具