跳到主内容
UniKit

JSON 树形浏览

把 JSON 展开成可折叠的树:支持展开/折叠全部、按深度展开、按键或值搜索高亮,点击任意节点即可查看并复制它的 JSONPath 与值。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

结构

请输入 JSON 文本

选中节点

JSONPath: –

这个工具能做什么

  • 调试接口返回的一坨压缩 JSON:展开成可折叠的树,一眼看清层级,比在编辑器里对着一个超长行舒服得多。
  • 按深度展开(1–5 层)快速把握整体结构,再用「展开全部 / 折叠全部」在总览和细节之间切换。
  • 搜索键名或叶子值并高亮命中项,同时自动展开命中的路径;点任意节点就能看到并复制它的 JSONPath(如 $.items[0].title)。
  • 排查「这个字段到底在哪一层」:点击节点后直接复制 JSONPath,粘到 jq、控制台或测试代码里接着用。

示例

输入

{"name":"UniKit","tags":["json","viewer"]}

输出

$  {2}
$.name  "UniKit"
$.tags  [2]
$.tags[0]  "json"
$.tags[1]  "viewer"

这是展开全部后的树:容器节点显示 {2} / [2] 这样的摘要,叶子节点显示原始值;根节点路径固定是 $。

常见问题

为什么报错信息比 JSON.parse 详细?

这里用的是自研解析器,不用 JSON.parse,所以能指出「第几行第几列 + 具体原因」,例如对象键没加双引号、字符串少了结束引号、JSON 结束后还有多余内容。JSON.parse 在很多浏览器上只给一句笼统的提示。

JSONPath 是怎么拼的?

对象键是合法标识符(字母、数字、下划线、$ 开头)时写成 .key;含点、连字符、空格等特殊字符时写成 ["k-e.y"];数组下标写成 [0]、[1]。这样生成的路径可以直接喂给大多数 JSONPath 实现。

超大 JSON 会卡死吗?

树最多渲染前 2000 行,超出会提示用搜索缩小范围,避免一次插入几十万个 DOM 节点。解析本身是线性的,但嵌套深度超过 512 层会被判为畸形输入并报错。

搜索能搜什么?

键名和叶子值,大小写不敏感。中间容器节点的值不参与匹配(否则搜一个常见字符串会命中所有祖先)。命中项的祖先会自动展开,方便直接看到上下文。

我的 JSON 会被上传吗?

不会。解析、搜索、渲染全部在浏览器本地完成,不发网络请求,断网可用,适合处理含敏感字段的接口数据。

关键词:jsonjson 查看json viewerjson 树tree viewjsonpathjson 搜索折叠collapse

同类工具