大 JSON 查看器与叶子路径搜索
打开本地文件或粘贴 JSON。Worker 可用时,在后台解析完整输入并建立叶子索引;页面最多展示 300 条匹配结果。
四组可重复的查看案例
载入案例后,核对实时结果与完整预期叶子列表或解析失败。小型案例不衡量大文件性能。
嵌套 API 响应:路径、0 与 false
五个叶子包含数组元素、数字 0、false 和 null。载入后搜索 ABC 或路径片段,缩小匹配列表。
输入
{
"order": { "id": 7, "items": [{ "sku": "ABC", "qty": 0 }] },
"ok": false,
"note": null
}
预期叶子列表或错误
$.order.id → 7 (number)
$.order.items[0].sku → ABC (string)
$.order.items[0].qty → 0 (number)
$.ok → false (boolean)
$.note → null (null)
路径仅供文本展示。对象和数组会被遍历,但没有可展开的父节点行。
受限 TS 风格数组 → 三个叶子
带类型标注、未加引号键、单引号和尾随逗号的静态导出数组可转换为数据,不检查接口类型。
输入
export const users: User[] = [
{ id: 1, name: 'Ada', active: true, },
];
预期叶子列表或错误
$[0].id → 1 (number)
$[0].name → Ada (string)
$[0].active → true (boolean)
不支持函数、变量引用或通用 JavaScript 程序;这是有限转换,不是执行代码。
截断响应 → 可见解析错误
最外层对象缺少右大括号。查看器清除旧数据,显示解析错误并禁用复制和下载。
预期叶子列表或错误
解析失败,无叶子行或可导出结果。
解析器不会修复此输入。具体诊断文字由浏览器解析器提供。
null 根 → 一个可导出叶子
null 根是有效 JSON。列表在根位置展示一个 null 叶子,复制或下载得到 null。
有效状态与真假值分别判断;空对象和空数组则产生零个叶子。
解析完整数据,控制结果列表的展示数量
当前展示叶子路径、值和类型的平面列表。搜索对路径和值的文本做不区分大小写的子串匹配;不展开树节点,也不执行 JSONPath 表达式。
四组小型可重复案例覆盖嵌套 API 数据、受限 TS 风格数组、截断输入和 null 根。500 条记录示例用于核对展示上限,不是浏览器性能基准测试。
使用边界与限制条件
- Worker 解析和建索引仍有内存成本:输入文本、解析对象与完整叶子索引都会保留,结果还会复制回主线程。搜索、文件读取与 JSON 导出仍可能影响响应,不承诺固定 MB 上限或速度。
- 列表最多显示 300 条匹配结果,没有可展开节点或虚拟滚动。空对象和空数组没有叶子;带点号或方括号的键可能产生含义不唯一的展示路径,搜索仅匹配文本,不是 JSONPath 查询引擎。
- 受限字面量转换不执行粘贴代码,也不检查 TypeScript 类型。仅接受部分类似 JavaScript 的静态语法,仍可能拒绝有效数据;例如进入宽松转换时,部分含撇号的双引号字符串会失败。可靠交换数据请用标准 JSON。
- 数字遵循 JSON.parse 和 JavaScript 数值精度,大整数标识符可能改变。复制和下载输出的是解析后的数据,不保留原始格式、注释或源码。
- Worker 不可用时,解析和索引在主线程执行,并显示模式标签。Worker 启动或运行错误会显示并清除旧结果。本地处理不代表已经验证生产隐私或所有浏览器兼容性。
常见问题与技术解答 (FAQ)
Worker 能保证大 JSON 不会让页面卡顿吗?▼
不能。Worker 可用时,解析和建索引在后台线程完成,但结果传输、响应式状态、搜索和导出仍消耗主线程与浏览器内存。页面耗时覆盖解析加索引,不是完整文件读取或界面响应时间。
可以展开节点或运行 JSONPath 查询吗?▼
当前是叶子平面列表。搜索忽略大小写并去除首尾空格,匹配路径或值的文本,不解释路径表达式;特殊属性名可能产生含义不唯一的展示路径。
null、false、0 与空容器怎样展示?▼
null、false、0 和空字符串等基本类型根是有效结果,展示一个叶子并可导出。空数组和空对象没有叶子行,但仍是有效且可导出的结果。
下载是不是只导出前 300 条结果?▼
不是。300 条仅限制匹配结果的展示;复制和下载会序列化完整解析数据,因此可能额外消耗内存。无效输入会清除旧结果,在再次成功解析前禁用导出。