JSON 扁平化 / 还原

将嵌套 JSON 对象用点号、斜杠或下划线分隔符扁平化为单层键。数组以索引表示(如 list.0)。也可将扁平键值映射还原为嵌套结构。完全在浏览器中处理。

浏览器本地处理 无需注册 JSON

把嵌套JSON对象展开为路径形式的扁平键,或把扁平对象恢复成嵌套对象和数组。可选择点、斜杠或下划线作为分隔符。

如何Flatten和Unflatten JSON

  1. 输入有效的JSON对象。
  2. 选择点、斜杠或下划线作为键分隔符。
  3. 执行Flatten或Unflatten。
  4. 需要时开启Pretty输出。
  5. 复制结果JSON。

对象与数组的处理方式

Flatten会递归展开普通对象。数组会使用items.0之类的数字路径段,数组中的对象也会继续递归展开。

Unflatten会按所选分隔符拆分键。如果下一个路径段完全是数字就创建数组,否则创建对象。如果原始键名本身含有所选分隔符,恢复时会产生歧义。

隐私与限制

处理完全在浏览器本地执行,不会有意上传输入JSON。顶层输入必须是非null的JSON对象,不能是数组或原始值。Unflatten不会对原始键名中的分隔符做转义,因此应选择不会与数据键冲突的分隔符。

常见问题

数组也会被展开吗?

会,数组索引会成为数字路径段。

支持哪些分隔符?

点、斜杠和下划线。

Unflatten能恢复数组吗?

可以,下一个路径段为数字时会创建数组。

可以Flatten顶层JSON数组吗?

不可以,当前实现要求顶层对象。

如果键名本身有分隔符呢?

路径边界和真实键名可能无法区分,导致恢复结果有歧义。