你可能错过的 JSON 格式化隐藏功能
多数用户打开 JSON 格式化工具、粘贴、复制、离开。同一个页面上还有六个能力,能让调试快得多,每一项都在头一分钟就能值回票价。都不需要配置;只要知道在哪就用得上。
1. 悬浮任何「时间形状」的 key 就能看到日期
把鼠标停在任何读着像时间戳的 key 的值上——createdAt、updatedAt、timestamp、created_at、expire-at、任何以 Date、time、_at、-at 或 DateTs 结尾的 key——都会弹出一个 tooltip,显示人类可读的日期与 ISO-8601 形式。如果数字在 epoch 秒与 epoch 毫秒之间含义模糊,工具会同时试两种解释并显示最新合理的那个日期。该功能只在普通数字值上触发;ISO-8601 字符串和 RFC 2822 字符串无论 key 名是什么都通过 Intl.DateTimeFormat 渲染。
使用场景:你盯着 10,000 行的 webhook 负载想找出最近的记录。这个悬浮 tooltip 让你跳过「再开一个标签页、粘到时间戳工具」的来回。
2. 树视图里的节点级复制与删除
把鼠标悬浮在树视图的任意行上,右边会浮出两个按钮:复制、(非根行的)删除。复制会把子树(当前行加它下面的所有内容)以 JSON 字面量拷进剪贴板;删除会把那个子树从内存中的文档里移走。改动只是内存;结果不对的话,「Apply to input」可以回退,或者直接粘新输入。
复制的动作就是「拷出最小有意义的 JSON」——单个对象、单个数组元素、单个基本类型。适合要从 50 元素的数组里分享一条记录给同事,或者从一个巨大负载里抽一块放进单元测试 fixture。删除就是「遮掉这部分」——适合给 bug 报告做一份脱敏版的负载。
3. 带自动补全的路径感知搜索
树视图顶部有一个搜索框,可以接受 root.user.email、root.users[3].name、root.items[*].price 这种路径。搜索词以斜杠结尾会弹出下一个合法段的下拉选项;选中一个继续。匹配的行在树里高亮,值显示在搜索栏旁边——如果值是 epoch 形状还会附带内联时间 tooltip。
通配符 [*] 展开数组的每个元素;结果是一组按数组下标索引的值。使用场景:你从 Stack Overflow 答案里复制了一段 JSON 路径,想知道这个 field 在当前负载里到底存不存在。
4. 带还原和单条删除的本地历史
每一次成功的格式化操作都会把输入自动保存到 localStorage 的 json-formatter:history 里,最多 20 条、每条 200 KB 上限。点历史条带里的任何 chip 就能还原;悬浮点红色的 × 删除单条;点「Clear all」一键清空。超过 200 KB 的输入不会被缓存——发生这种情况时条带顶部会有一条 amber 横幅解释原因。
使用场景:你已经在某段配置上迭代了十分钟,想找五分钟前还能用的版本。历史只存在浏览器本地,不上传任何地方。
5. 从 JSON 比对工具导出 JSON Patch
JSON 比对工具(独立页)有一个结构化视图,列出对比里每一条「改动 / 新增 / 删除」的路径。它旁边是一份 RFC 6902 JSON Patch 视图——一份机器可读的操作列表,能把原始变成修改后。顶部的「Export patch」按钮把这份 patch 下载为 patch.json。
使用场景:你需要用一种能被下游服务软件直接套用的格式,向它讲清楚到底改了什么。RFC 6902 在 jsonpatch(Python)、fast-json-patch(Node.js)、JsonPatch.Net(.NET)都支持,所以这份 patch 文件就是各种自动化的输入。
6. 格式化后的「Apply to input」
工具栏有一个「Apply」按钮(或 Ctrl/Cmd+B)。点下去,右边格式化后的输出变成左边的输入。这是「往返」控制。用法:验证一个「美化输出」的往返是否与「重新解析 + 重新序列化」的版本字节相同;或者把一份压缩负载转成缩进形式继续编辑。
Apply 也是树视图删除的安全网——如果你删多了,Apply 把改动落到输入里,再点一次 Apply 反向。
收尾
六个特性,六种场景。都不藏在菜单里——全在工具栏或树视图头部,但只 paste-and-copy 时容易错过。先试试悬浮时间字段;十行之内就能值回票价。