卡在哪一步
- 粘贴:系统剪贴板和 textarea 对超大文本不友好,有的环境直接截断,解析结果「少了半截」,看起来像语法错误。
- parse:几兆的纯文本 parse 通常还能做。真正慢的是紧接着建树。
- 全展开:每个键一个节点,一万个 SKU 就会把页面拖死。
所以策略是:文件导入、少展开、用路径提问,而不是「全部打开看看」。
用文件,不要用复制
把接口导出或日志存成 .json / .jsonl,拖到 HiJSON。绕过剪贴板截断。JSONL 按行存的日志见 JSON Lines。
超过大约 5MB,解析和首屏树都会明显变慢。这时先问自己:我是要看全貌,还是只要 errors 或某个 id?后者在本机切一刀再导入更合适。
先问路径,再展开分支
搜索框用 $ 开头,只取你要的:
$.data.items[0] $.data.items[*].id $..error_code
递归 $.. 在超深、超宽的文档上也会慢,尽量带上已知前缀,比如 $.payload..error_code。语法说明在 JSONPath 入门。
列表核对用 $.data.items[*].{id,status},不要为了「看一眼状态」展开 2000 个对象。树怎么读见 树视图。
大纲当目录,不要当阅读器
中间大纲用来跳到 data、meta、errors。跳过去再展开那一枝。把大纲理解成 IDE 的文件树,而不是把整个仓库展开。
本机 jq:浏览器的前一步
已经确定只要一部分时:
jq '.data.items[:20]' dump.json > slice.json
jq '{count: (.data.items|length), sample: .data.items[0]}' dump.json
把 slice.json 再拖进 HiJSON。结构、类型、空值这些事,小样本就够判断。全量统计(一共多少条、有多少失败)留给 jq 或数据库,别交给网页。
内存和隐私
大文件会占标签页内存。用完关掉,或刷新。生产导出里常有用户字段,默认不离开浏览器;一旦点分享,数据会去 JSONBin,大文件既慢也不合适。原则见 安全注意 和 隐私政策。
什么算「太大,别用网页」
没有硬门槛。经验上:
- 几百 KB:随意。
- 一两 MB:文件导入,少全展开。
- 十几 MB 以上:先切,或只用命令行。网页当「看样本」的放大镜。
流式、按行的上百 MB 日志,用日志平台或 jq 流式过滤。把整个文件塞进单页应用没有意义。
常见问题
- 解析成功但页面假死?
- 多半是展开过多。刷新,只开大纲,用路径取子集。
- 文件只有 2MB,粘贴却缺字段?
- 按截断查:文件导入对比。若导入完整、粘贴缺,就是剪贴板或输入框限制。