处理几十 MB、几万行的 JSON 时,最常见的问题就是:编辑器卡死、浏览器崩溃、页面无响应。这是因为一次性解析和渲染整个 JSON,会占满内存和 CPU。本文教你几个实用技巧。
一个大 JSON 的「杀伤力」来自两处:
JSON.parse 要把整个字符串一次性转成内存对象,几十 MB 的数据瞬间占用几百 MB 内存。好的在线工具会针对大文件做专门优化。以 JSON 在线格式化工具 为例,它做了三件事:
JSON.parse 放在 Web Worker 里执行,不阻塞页面主线程,输入时页面不会假死。所以在浏览器里处理大 JSON,选对工具比换电脑更有效。
大文件最大的坑是手贱点了「全部展开」。几万个节点一次性渲染,再好的浏览器也扛不住。正确的做法是:
如果是在自己的代码里处理超大 JSON,浏览器端的 JSON.parse 不合适,建议换流式方案:
JSONStream、Python 的 ijson),边读边处理,不一次性载入内存。File.slice 分段读取,或直接交给后端处理。如果大 JSON 要走网络传输,先压缩能省不少时间——去掉空格换行,体积通常能减小 30%-50%。压缩后到目的地再格式化查看。