直接在浏览器中格式化、校验和压缩 JSON
JSON 是 JavaScript Object Notation(JavaScript 对象表示法)的简称,是现代 Web 的通用语言。你调用的几乎每一个 REST API 都会返回它,大多数配置文件依赖它,服务与前端之间流动的海量数据也都以 JSON 序列化。它的流行不无道理:这种格式简单、与语言无关,并且能干净地映射到程序员早已习惯的对象、数组、字符串和数字。但同样的紧凑性也有不利的一面。当服务器把一行式响应丢给你,里面塞满了数百个嵌套键时,那个让 JSON 如此吸引人的结构便消失在一堵字符墙之中。
speedor.net JSON 格式化工具正是为了把那个结构还给你而存在。粘贴你的数据,它就会当场美化、校验并压缩 JSON,全程都在你的浏览器标签页内完成。没有任何内容被上传到服务器,当你检查的载荷是包含令牌、客户记录或内部标识符的 API 响应时,这一点尤为重要。

缩进为何让 JSON 重新变得可读
格式化,也称为美化或漂亮打印(pretty-print),会把紧凑或压缩过的 JSON 加上换行和一致的缩进。信息本身完全相同,改变的只是空白字符。然而正是那些空白让你的眼睛能够跟随嵌套深度、看清一个对象在哪里结束、下一个从哪里开始,并区分一个三元素的数组和一个三百元素的数组。当你在凌晨两点调试一个集成时,可读的树与一串不间断的字符串之间的差别,就是找到 bug 与漏掉 bug 之间的差别。
一个好的格式化工具还会原样保留键的顺序和精确的值,所以你读到的就是 API 真正发送的内容。你看的不是重新渲染后的近似版本,而是同样的字节,只是排布得让人能像机器一样轻松解析。
校验与那些绊倒所有人的错误
美化只是工作的一半。在 JSON 能被格式化之前,它必须是有效的,而该格式严格的规则会捕捉到比人们预期多得多的错误。校验器会解析你的输入并准确告诉你它在哪里出错,通常会指向某一行和位置,让你不必盲目查找。下面这几个错误占了无效 JSON 的绝大多数:
- 尾随逗号。JSON 禁止在对象或数组最后一个元素后加逗号。JavaScript 容忍它,这正是开发者出于习惯把它粘贴进来的原因。
- 单引号。字符串和键必须使用双引号。直接从源代码里拷出一个对象字面量常常会留下单引号,于是解析器拒绝它。
- 未加引号的键。每个键都必须是带引号的字符串。裸键,也就是在 JavaScript 对象中能正常工作的那种,在 JSON 里是无效的。
- 括号缺失或不匹配。一个未闭合的
{或[,或者一个多余的闭合括号,会让整个文档脱轨。格式化工具会高亮显示平衡断裂的位置。 - 注释和未定义值。JSON 没有注释,也没有
undefined;只允许null、布尔值、数字、字符串、数组和对象。
先把可疑的载荷跑一遍校验器,这些问题就会在几秒钟内浮现,而不是在一连串令人困惑的部署失败之后才暴露。

压缩以缩小载荷
反向操作同样有用。压缩会剥去每一个可选的空白字节,把你的 JSON 折回最紧凑的单行形式。当数据要发往网络或写入某个配置值时,这正是你想要的,因为更小的载荷意味着更少的带宽和更快的传输。一个常见的工作流是:在研究一个响应时先美化它,修正其中的错误,然后在提交或粘贴进环境变量之前压缩结果。一个工具就能处理这个循环的两端。
本地处理让敏感数据保持私密
由于每一步都在你自己浏览器内的 JavaScript 中运行,你粘贴的 JSON 永远不会离开你的机器。这不是营销上的好听话,而是一项实实在在的保证。你可以丢进一个满是 bearer 令牌的原始 API 响应、一份用户数据导出,或一份内部服务配置,而不必担心第三方服务器在记录它。关闭标签页,数据就没了。对于任何在数据处理规则约束下工作的人,仅本地处理消除了整整一类风险。
当你的 JSON 干净之后,你可能想再进一步。探索我们其余的开发者工具,用 JSON 转 YAML 转换一个结构,或用 Base64 解码一个内嵌的值。每个工具都遵循同样的原则:快速、免费,并且完全在你的浏览器中处理。
常见问题
我的 JSON 会被上传到服务器吗?
不会。格式化工具完全使用 JavaScript 在你的浏览器中运行。你的数据永远不会被发送到任何地方,所以你可以放心粘贴敏感的 API 响应或配置文件。
格式化和压缩有什么区别?
格式化会加上缩进和换行让 JSON 变得可读。压缩会移除所有可选的空白以让载荷尽可能小。两种形式下数据本身完全相同。
为什么我的 JSON 校验失败?
最常见的原因是尾随逗号、用单引号代替双引号、未加引号的键、注释,以及括号缺失或不匹配。校验器会指向问题出现的那一行。
我可以在 JSON 中使用单引号吗?
不可以。JSON 规范要求所有字符串和键都使用双引号。单引号在 JavaScript 中有效,但在 JSON 中无效,这是常见的错误来源。
工具在格式化时会改变我的数据吗?
不会。格式化只会增加或移除空白。键、值及其顺序都和原来完全一致,所以你读到的就是 API 实际发送的内容。
有大小限制吗?
由于处理在本地进行,实际限制取决于你的设备和浏览器,而非服务器上限。典型的 API 响应和配置文件都能瞬间格式化。
