帮我们把 JSON Workbench 做得更好!欢迎告诉我们你是怎么用的。
01

这个页面能做什么

这是一个完整的 JSON 工作台。可以直接粘贴接口响应、打开本地的 .json 文件,或者手动输入。全部在浏览器本地运行,数据不会离开你的电脑。下面是各项功能:

格式化与校验
把压成一行的 JSON 整理成带缩进、好阅读的样子。输入时会实时校验,并指出第一个错误的位置,例如 Unexpected token } at position 42,而不是只提示「格式不对」。
压缩
去掉所有多余的空格、换行和缩进,得到体积最小的合法 JSON,通常能减小 30%–60%,适合上线前处理或粘贴进配置。
转义 / 去转义
把 JSON 转成可以放进代码字符串里的转义形式,需要查看时再还原回来。
脱敏
贴到工单、群聊或 Bug 报告之前,把邮箱、姓名、手机号、Token 等隐私信息替换掉。要处理哪些字段、替换成什么,都由你决定。
查看
用可折叠的树形视图浏览层级很深的数据;如果是对象数组,切到可排序的表格视图更直观。
上传与下载
打开本地的 .json 或文本文件,编辑后再保存为 .json 文件。
02

使用流程:从杂乱的 JSON 到整齐的结果

不管 JSON 来自接口、日志文件还是 MongoDB 导出,步骤都一样,也不需要任何配置:

  1. 1
    把 JSON 放进编辑器。可以直接输入,用 Ctrl+V 或「粘贴」按钮粘贴,也可以点「上传」选择本地文件。
  2. 2
    输入的同时自动校验。JSON 合法时,操作按钮可用;不合法时按钮置灰,同时在第一个出错的位置画上波浪线,比如漏掉的逗号、没加引号的 key、多出来的括号。
  3. 3
    选择要做的操作。格式化、压缩、转义、去转义或脱敏。解析和格式化在后台 Web Worker 中进行,几 MB 的数据也不会卡住页面。
  4. 4
    复制或下载结果。点复制放进剪贴板,或点下载保存为 .json 文件。
示例输入:接口返回的一行用户数据
{"id":1001,"姓名":"张伟","城市":"杭州","角色":["管理员","编辑"],"已启用":true}
点击「格式化」之后
{
  "id": 1001,
  "姓名": "张伟",
  "城市": "杭州",
  "角色": [
    "管理员",
    "编辑"
  ],
  "已启用": true
}

格式化只调整空白字符。字段、值和顺序都不会变,输出和输入表示的始终是同一份数据。

03

大 JSON 文件怎么处理

接口全量导出、日志文件、数据集抽样……这个工具是按大文件的场景设计的。耗时的操作都交给后台线程,处理时依然可以正常滚动和输入:

  1. 1
    尽量用上传,别用粘贴。「上传」按钮支持 .json、application/json 和纯文本文件。通过剪贴板粘贴一个 20 MB 的字符串也能用,但直接打开文件更快,也不容易出错。
  2. 2
    切换到树形视图。节点可以折叠,包含上千个字段的结构也能快速定位,只展开需要看的分支就行,不用在一大堆文本里来回滚动。
  3. 3
    用搜索定位,别靠滚动。按 Ctrl+F(Mac 用 Cmd+F)搜索字段名或值。高级搜索支持正则表达式,比如 "id"\s*:\s*\d+。
  4. 4
    下载前先压缩。如果对文件大小有要求,比如上传限制或要做 diff,压缩后的 JSON 通常比格式化版本小 30%–60%,而且数据完全不变。
  5. 5
    分享前先脱敏。点开盾牌旁边的设置(齿轮图标),选好要处理的字段和替换内容,再点脱敏。你的脱敏规则会保存在本机,下次打开还在。
实话实说:工具本身没有文件大小限制,但浏览器标签页能用的内存有限。电脑上处理几十 MB 没问题,手机上超过约 10 MB 可能会慢。如果页面变卡,可以关掉其他标签页,或者把文件拆开。工具不会擅自截断或改动你的数据。
04

每个按钮和控件的说明

工具栏会随活动模式而变化 —— 以下是从左到右每个控件的作用。

视图模式(工具栏左侧)

树形视图
数据的可折叠层次结构。点击任意节点即可折叠或展开分支 —— 这是理解陌生有效载荷结构的最快方式。
代码视图
默认视图:完整的编辑器,带 JSON 语法高亮、行号,以及在破坏语法的确切字符下方的内联错误标记。
表格视图
将对象数组渲染为表格 —— 每个元素一行,每个键一列。非常适合日志、产品列表或任何重复性数据。

数据操作

格式化
以 2 空格缩进进行美化打印。在内容成为有效 JSON 之前保持禁用 —— 这是刻意设计,因此 Format 产生的任何结果都保证可解析。
压缩
移除所有不属于字符串值的空白,生成相同数据的最小有效表示。
转义
将您的 JSON 序列化为转义字符串 —— 引号变为 \",换行符变为 \n —— 可直接嵌入另一个字符串字面量、变量或配置值而不破坏语法。示例:{"a":1} 变为 "{\"a\":1}"。
去转义
反向操作:获取转义的 JSON 字符串 —— 来自日志行、包装的 API 字段、配置值 —— 并将其转换回可编辑、已格式化的 JSON。它还会校验结果,因此损坏的转义会被捕获而不是被悄悄保留。
Anonymize(盾牌)
扫描您的键,建议可能的个人数据(电子邮件、令牌、姓名、电话),并用您的遮蔽文本替换选定的值。在将有效载荷粘贴到 issue、聊天或文档之前使用。
匿名化设置(齿轮)
打开遮蔽配置:搜索您的键、添加自定义键、设置替换文本并调整优先级。设置保存在本地并即时生效。

剪贴板与文件

复制
复制当前编辑器内容。在编辑器内 Ctrl+C 照常工作 —— 该按钮服务于树视图和表格视图,在这些视图中选择文本很别扭。
粘贴
将剪贴板内容插入编辑器,替换选中内容。在树视图和表格视图中很有用,因为那里 Ctrl+V 没有目标。
上传
打开 .json 和纯文本文件的文件选择器,并将其内容加载到编辑器中。
下载
将当前编辑器内容保存为 .json 文件 —— 是您看到的格式化版本,而非原始输入。

键盘快捷键

Ctrl+F / Cmd+F
在整个有效载荷中打开搜索。输入纯文本或正则表达式以在匹配项之间跳转。
Alt+Z
为长行切换自动换行 —— 当值包含长 URL 或序列化字符串时很有用。
Ctrl+Z
撤销上次编辑或操作。历史记录在模式切换后仍然保留。
Ctrl+Shift+Z
重新应用您撤销的操作。
05

常见问题

我的 JSON 会上传到服务器吗?

不会。解析、格式化、转义和脱敏全部由浏览器里的 JavaScript 和 Web Worker 完成,没有后端参与。页面加载好之后,大部分功能断网也能用。

为什么「格式化」和「压缩」按钮点不了?

说明编辑器里的内容还不是合法的 JSON。只有校验通过,按钮才会启用,这样得到的结果一定能被正确解析。切换到代码视图,找带波浪线的位置,常见原因是漏了逗号、key 没加引号或者末尾多了逗号。

JSON 报 Unexpected token 错误怎么办?

错误提示会告诉你出问题的字符和位置。最常见的几种情况:用了单引号而不是双引号、最后一个元素后面多了逗号、key 没有加引号、写了 // 注释(标准 JSON 不支持),还有从 Word 或网页里复制出来的中文全角引号。

格式化会不会改动我的数据?

不会。格式化和压缩只增减空白字符,字段、值和顺序都原样保留,处理前后的 JSON 解析出来是完全一样的数据。

最大能处理多大的文件?

没有人为限制,取决于浏览器标签页的内存。电脑上几十 MB 的文件可以轻松处理,手机浏览器超过约 10 MB 可能吃力。处理放在后台线程,大文件也不会让页面卡死。

转义和压缩有什么区别?

压缩是去掉空白,结果仍然是 JSON。转义是把整段 JSON 变成一个字符串:外面套上引号,里面的引号加上反斜杠,这样就能放进代码里的字符串变量或其他文档里,而不会破坏语法。

怎么分享 JSON 又不泄露用户隐私?

用脱敏功能。点齿轮图标,选出包含敏感信息的字段(工具会自动推荐邮箱、Token 之类的候选),设置替换内容后运行即可。得到的副本可以放心贴到 Bug 报告或群里,原始数据仍保留在编辑器中。

能格式化带注释的 JSON(JSONC)吗?

暂时不行。校验遵循严格的 JSON 标准(RFC 8259),//、/* */ 注释和末尾逗号都会被判为错误。请先把注释删掉,大多数编辑器用查找替换就能搞定。

要钱吗?需要注册账号吗?

免费,不用注册,没有水印,也没有使用限制。页面上有少量不影响使用的广告用来维持运营;工具完全在你的设备上运行,我们不会收集你的数据。

JSON 整理好之后,还可以用 JSON 对比找出两份数据的差异,用 Base64 解码处理编码字符串,表格数据用 CSV 转 JSON,或者用 JWT 解析查看 Token 里的内容。