大文件 JSON 查看器

大文件 JSON 查看器,10MB、数十 MB 的 JSON 拖进浏览器就能打开。解析在 Web Worker 后台线程完成,树视图采用会话化窗口渲染,只把可视区附近的行放进 DOM 与内存,十万、百万节点滚动也不卡;超过 5MB 的文本自动切换为只读分片浏览模式。支持本地文件打开与拖拽、键名 / 值搜索定位、折叠展开、JSONPath 面包屑和节点复制,文件不经过服务器。

在工作台中打开 本地处理 · 数据不上传

怎么使用

  1. 1

    打开大文件

    点击「打开文件」选择本地 .json,或直接把文件拖拽到工作台页面;内容通过浏览器 File API 在本地读取,不会上传。也可以直接粘贴大段 JSON 文本。

  2. 2

    在树视图中浏览结构

    左侧树按容器层级展示节点,点击箭头折叠 / 展开,也可以用顶部的「全部展开 / 全部折叠」;无论文件多大,滚动时只拉取与渲染可视区附近的行。

  3. 3

    搜索并跳转节点

    顶部搜索框输入键名或值片段(防抖自动搜索,最多返回 500 条命中),用 ↑ / ↓ 在命中之间跳转,匹配子串高亮,并自动展开命中节点的祖先路径。

  4. 4

    查看路径、复制与编辑

    点击任意节点,顶部面包屑显示其 JSONPath(如 $.items[12].id)并可逐祖上溯;悬停节点可复制值或路径,基本类型值支持行内编辑并实时同步回右侧文本。

功能特点

Web Worker 后台解析

完整 JSON.parse 在后台线程执行,解析期间输入、滚动依然响应,主线程不出现「页面无响应」。

树会话 + 窗口化渲染

Worker 只持有一个树会话,行数据按页(每页 100 行)按需回传,视口外的页自动回收;主线程内存与 DOM 节点数量与文件总大小无关。

5MB 自动分片浏览

文本超过 5MB 时编辑器自动切换只读虚拟行视图:固定行高虚拟滚动、行号、JSON 语法着色与错误行定位;超长单行截断显示并提示先格式化。

本地文件与拖拽

支持文件选择器与整页拖拽放入,显示文件名与大小(KB / MB),适合日志导出物、数据库 dump 等无法粘贴的场景。

搜索 / 面包屑 / 行内编辑

键值搜索带祖先自动展开与上下导航;路径面包屑可点击上溯;基本类型节点可直接改值,结构化克隆与防抖均已处理。

不上传文件

本地文件在内存中读取和解析,没有携带文件内容的请求。

常见错误与排查

  • ! 未格式化的单行超大 JSON(一行几百万字符)不适合直接阅读:可先到「JSON 格式化」工具美化,再回到树视图或分片视图浏览。
  • ! 「全部展开」对百万节点文件仍可能产生大量行,建议先用搜索定位目标节点(会自动展开其祖先链),比盲目全展开更快。
  • ! 树窗口只保留视口附近的分页,快速滚动时个别行可能短暂空白,属于正常的按需拉取,停止滚动即补齐。
  • ! 数据中包含超过 2^53-1 的整数(如雪花算法 ID)时,建议到格式化工具开启「大整数(BigInt)模式」,避免普通解析丢失末位精度。

常见问题

最大支持多大的 JSON 文件?

工具没有人为设置大小上限,实际取决于设备内存:10MB 级文件很快能打开,数十 MB 文件通常也能流畅浏览。关键在于解析放在 Web Worker、树视图只渲染可视行、文本视图超过 5MB 自动切换只读分片模式,文件大小不会直接变成 DOM 节点数。对于未格式化的超长单行,建议先格式化再浏览。

打开大文件时浏览器会卡死吗?

不会。JSON 解析运行在独立的 Web Worker 线程中,不占用主线程;树视图采用会话化窗口协议,主线程只持有当前滚动位置附近的分页数据,视口外的页会被自动回收。解析过程中界面显示「解析中」状态,依然可以滚动和操作。

我的 JSON 文件会被上传吗?数据安全吗?

不会上传。文件通过浏览器的 File API(file.text())在本地读入,解析、搜索、格式化都在本机完成,不存在携带文件内容的网络请求,适合处理接口报文、日志和含个人信息的数据。

为什么超过 5MB 后不能直接在编辑器里修改?

CodeMirror 编辑器会对整份文档做增量语法解析,超大文档(尤其单行压缩 JSON)下输入与高亮会明显掉帧。因此超过 5MB 时自动切换为只读分片视图以保证浏览流畅;需要修改时可以使用树节点的行内编辑,或先缩小 / 格式化文档后再回到编辑模式。

树视图里十万以上节点搜索会不会很慢?

搜索同样在 Worker 中执行,输入防抖 300ms 后开始,结果上限 500 条并提示截断;命中后工具自动把各命中节点的祖先链并入展开集合、重建会话,并通过行索引直接滚动定位,无需全量展开即可跳到深层节点。

相关工具