toolgarden.xyz
EN

JSON 统计分析

分析 JSON / JSONC / JSON5 的嵌套层级、key 数量、类型分布,并对比格式化与压缩后的体积,浏览器本地完成。

输入 JSON / JSONC / JSON5

输入 JSON / JSONC / JSON5 后自动显示分析结果

工具说明

JSON 统计分析递归遍历文档,计算原始 UTF-8 字节数、压缩后的字节数、最大嵌套层级、key 总数、对象与数组数量、各值类型数量以及最长字符串。它回答的是结构规模问题,不会读取字段的业务含义。

原始体积包含输入中的空白,压缩体积来自重新序列化后的标准 JSON,两者差值可以估算格式化空白开销。统计会访问每个节点,超大文档的耗时和内存都随节点数量增长。

使用步骤

  1. 粘贴完整文档

    输入标准 JSON、JSONC 或 JSON5,先由解析器确认结构有效。

  2. 读取结构指标

    结合层级、key 数、数组和对象数量判断数据复杂度,不只看文件字节。

  3. 定位异常信号

    最长字符串、极深层级或某类值数量异常时,回到源数据检查生成逻辑。

输入与输出示例

结构摘要而不是数据本身。体积对比能告诉你压缩是否值得。

JSON 输入
{
  "users": [
    { "id": 1, "tags": ["a"] },
    { "id": 2, "tags": [] }
  ]
}
统计结果
最大层级      4
key 总数      7
类型分布      object 3 / array 3 / number 2 / string 1
格式化体积    92 B
压缩后体积    54 B

支持范围与限制

统计项
最大嵌套层级、key 总数、各类型分布、数组长度、格式化与压缩后的体积对比
主要用途
接手陌生数据时先摸清规模和形状,再决定用什么方式处理
嵌套层级的意义
层级过深会拖慢树形展示和序列化,也提示数据模型可能需要拆分
类型分布的用处
同一字段在不同元素里类型不一致,通常是数据质量问题的信号
体积对比
看出压缩能省多少,判断是否值得在传输层做最小化
不做什么
只统计不修改,输入数据保持原样

典型使用场景

  • 评估接口载荷

    比较格式化与压缩体积,并观察结构是否因重复嵌套快速膨胀。

  • 审查生成数据

    用类型分布和最长字符串发现意外的 null、巨型内联文本或对象层级。

  • 判断是否值得在传输层做压缩

    对比格式化与压缩后的体积差,决定接口是否需要开启最小化或 gzip。

使用前需要知道的事

  • 字节数按 UTF-8 计算,中文字符通常不等于一个字节。
  • 最大深度从根值开始计数,和某些库把根计为第一层的口径可能相差一。
  • 统计不去重,同一结构重复出现多少次就遍历和计数多少次。

相关概念

UTF-8 byte size
文本编码后的实际字节长度,比 JavaScript 字符串 length 更接近网络传输体积。
maximum depth
从根到最深叶子经历的嵌套层数,可用于识别过度复杂的数据形状。

常见问题

JSON 统计分析能看到哪些信息?
可以查看嵌套层级深度、Key 总数、各类型(字符串/数字/对象等)的分布,以及数据体积等结构指标。
这些统计有什么用?
有助于评估接口返回是否过于臃肿、结构是否合理,或在优化前后对比数据体积和复杂度。
分析会上传数据吗?
不会。所有统计在浏览器本地计算,数据不会上传到服务器。
嵌套层级多深算有问题?
没有硬性标准,但超过 8 到 10 层通常意味着数据模型可以拆分。层级越深,树形展示、序列化和前端取值的成本都越高,出错时也更难定位。
类型分布能看出什么问题?
最有价值的信号是同一字段在不同数组元素里类型不一致:比如 id 有时是数字有时是字符串。这类不一致在下游几乎一定会引发 bug,而且往往在测试环境里碰不到。