无需登录 数据私有 本地保存

JSON展平工具 - 嵌套对象转为单层键值

16
0
0
0
JSON 工具

JSON 展平工具

嵌套对象转为单层键值对 · 一键展平与还原
嵌套 JSON 输入 等待输入
展平结果 0 深度 0
自动转换中
展平视图

常见问题与知识点

JSON 展平是将嵌套的多层 JSON 对象转换为单层键值对的过程。例如 {"user":{"name":"张三"}} 展平为 {"user.name":"张三"}

常见用途:① 数据导入到 CSV/Excel 等表格工具;② 数据库扁平化存储(如 MongoDB 的扁平查询);③ 简化前端表单数据处理;④ API 数据转换与映射;⑤ 日志分析和搜索优化(扁平结构更易于索引)。

点号分隔符 (a.b.c):最常用,简洁直观,适合大多数场景,与 JavaScript 对象访问语法一致。
点号+方括号 (a.b[0].c):数组索引用 [n] 明确标识,可读性好,推荐用于包含数组的复杂 JSON。
下划线 (a_b_c):适合需要避免点号冲突的场景(如某些数据库字段命名规范)。
方括号包裹 ([a][b][c]):兼容 PHP 表单数组语法,适合后端表单处理。

建议根据目标系统的命名规范来选择分隔符。

可以!本工具提供「展开还原」功能,点击按钮即可将展平结果智能还原为嵌套 JSON。工具会自动识别数组索引(纯数字键)并重建嵌套结构。

注意:还原的准确性取决于展平时使用的分隔符和数组格式。如果展平键使用非标准格式,还原可能产生偏差。建议使用默认的「点号+[n]」格式以获得最佳还原效果。

数组元素会按索引展开。例如 {"items":["苹果","香蕉"]} 展平为 {"items[0]":"苹果","items[1]":"香蕉"}

如果数组包含对象,会进一步递归展平:{"users":[{"name":"张三"}]}{"users[0].name":"张三"}
空数组 [] 展平后不会产生任何键值对(在结果中表现为空对象 {} 的减少)。

深层嵌套:超过 100 层嵌套可能导致浏览器递归栈溢出,建议控制嵌套深度在 50 层以内。
大体积 JSON:超过 10MB 的 JSON 建议使用命令行工具(如 jq)处理。
键名长度:展平后键名会变长,过长的键名可能影响后续处理工具。
循环引用:标准 JSON 不支持循环引用,但某些非标准输入可能导致问题。
本工具已针对常见场景优化,处理数千个键值对通常在毫秒级完成。

如果原始 JSON 的键名本身包含分隔符(如键名为 "user.name"),展平后可能产生歧义。本工具在展平时会保留原始键名,不会对其进行转义。

处理建议:① 避免在原始键名中使用与分隔符相同的字符;② 选用不会冲突的分隔符(如原始键含点号时改用下划线);③ 在代码中处理时使用更智能的路径解析器。
✓ 已复制到剪贴板