在线展开 JSON 压缩代码
粘贴 API 响应、配置文件或一行日志,让数据更便于阅读。对象和数组按层级缩进,每个键独占一行,结果还带有语法高亮。
为什么收到的 JSON 都很紧凑
JSON 是 API 常用的数据格式,而 API 优先考虑传输字节数,而非阅读体验。REST 接口或 GraphQL 服务器的响应在序列化时往往不带一个空格,这对网络传输很合适,却不利于人阅读。工具自动提交的配置文件、结构化日志、页面中内嵌的 JSON-LD,以及从开发者工具网络面板复制的内容,也常常如此。
格式化让结构一目了然
缩进后的 JSON 可以立即回答结构问题:这个对象嵌套了几层?该字段是对象数组,还是由数组组成的对象?哪个本应有值的键实际为 null?一条记录在哪里结束,下一条又从哪里开始?在格式化后的数据中查找缺失或拼错的键,通常只需几秒;在单行内容中做同样的事,往往最后只能改用脚本。
立即发现无效 JSON
输入必须先成功解析,才能重新输出,因此格式化也是一种快速检查语法有效性的方式。尾随逗号、单引号字符串、值中未转义的引号或被截断的响应,都会使解析停止并显示错误,而不是输出结果。很多时候,正是这样才发现正在排查的 API 响应不完整,或配置文件里多了一个逗号。
JSON、JSON Lines 与 JSONP
本页面用于格式化单个 JSON 文档。如果输入是每行一个 JSON 对象的日志文件,请单独格式化您关心的行,而不是整个文件,因为文件整体并不是一个有效的 JSON 文档。如果响应以函数名开头、数据包在函数调用中,那么它是 JSONP 而不是 JSON。这也解释了工具为什么有时会将数据识别为 JavaScript。在这种情况下,识别结果是正确的,按 JavaScript 格式化后仍然可以清楚阅读。
常见问题
会验证我的 JSON 吗?
实际上会检查语法。文档必须先成功解析才能格式化,因此任何语法错误都会中止处理并显示提示。用它可以快速检查数据是否具有正确的 JSON 结构。
会保留键的顺序吗?
会。每个键都会保持它在源文档中出现的顺序,工具不会对键进行排序,也不会重新排列对象中的字段。格式化只调整空白和换行,让原有的数据结构更容易阅读。
可以格式化很大的 API 响应吗?
在合理范围内可以。几兆字节的数据也能处理,但解析在您的本机运行,因此需要等待片刻。内容不会上传,所以也适合粘贴包含内部数据的响应。
