工具说明
JSON 统计分析递归遍历文档,计算原始 UTF-8 字节数、压缩后的字节数、最大嵌套层级、key 总数、对象与数组数量、各值类型数量以及最长字符串。它回答的是结构规模问题,不会读取字段的业务含义。
原始体积包含输入中的空白,压缩体积来自重新序列化后的标准 JSON,两者差值可以估算格式化空白开销。统计会访问每个节点,超大文档的耗时和内存都随节点数量增长。
使用步骤
粘贴完整文档
输入标准 JSON、JSONC 或 JSON5,先由解析器确认结构有效。
读取结构指标
结合层级、key 数、数组和对象数量判断数据复杂度,不只看文件字节。
定位异常信号
最长字符串、极深层级或某类值数量异常时,回到源数据检查生成逻辑。
输入与输出示例
结构摘要而不是数据本身。体积对比能告诉你压缩是否值得。
{
"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
- 从根到最深叶子经历的嵌套层数,可用于识别过度复杂的数据形状。