JSON 格式化工具
格式化、压缩和验证 JSON。可选择缩进方式使内容更易读,或压缩为单行。语法错误也可即时检查。
什么是 JSON 格式化工具
JSON 格式化工具可把挤在一行、难以阅读的 JSON 重新整理为带缩进的形态,也可反过来去除空白、压缩为一行。由于在解析输入的同时也会判定语法是否正确,因此只需粘贴 API 响应或配置文件,即可一并完成格式化、压缩与校验三件事。缩进可从2个空格、4个空格与制表符中选择。
判定使用浏览器自身的 JSON 解析器,因此不会出现「本工具能通过、运行环境却报错」的落差。处理全部在您所使用的设备内完成,粘贴的 JSON 不会被发送至服务器。即便是含有认证令牌或个人信息的 API 响应,也能在不外泄内容的前提下加以格式化。
JSON 格式化工具的使用方法
- 粘贴 JSON 把 JSON 粘贴到左侧的输入框。若手边没有可试的数据,可用「示例」按钮载入范例。
- 选择缩进的宽度 从2个空格、4个空格与制表符中选择。配合项目的格式规范,即可原样贴回。
- 查看有效与无效的标示 随输入即时切换「有效的 JSON」「无效的 JSON」标记。无效时会原样显示解析器返回的错误信息,可据以追查在第几行的哪个字符处受阻。
- 选择格式化版或压缩版复制 「复制格式化结果」把带缩进的结果、「复制压缩结果」把去除空白后的单行结果放入剪贴板。
- 确认行数与字节数 行数计的是格式化后的结果,字节数计的是压缩后的结果并以 UTF-8 计量。估算传输量时请看后者。
用好本工具的小技巧
- JSON 的键必须用双引号括起来,单引号无效。
- 末尾逗号(如
{"a":1,})在 JSON 规范中是无效的。 - 数字可使用科学计数法(e 表示),但 NaN 和 Infinity 是无效的。
- 字符串中的双引号需转义为
\",换行符用\n,制表符用\t。 - 压缩可有效减小文件体积。API 传输推荐使用压缩版,配置文件建议使用格式化版。
JSON 格式化工具的应用场景
阅读 API 响应的内容
把以一行返回的响应加以格式化,嵌套的深度与数组的元素数便能以肉眼追踪。这是开发中的动作确认与排查缺陷时最常见的用法。
查明配置文件的语法错误
当应用无法读取配置文件时,粘贴并校验即可当场锁定尾随逗号、引号未闭合等原因。
为减少传输量而压缩
把格式化后的 JSON 直接作为 API 响应或内嵌数据返回,会因缩进的空白而白白增加传输量。用于分发时请使用压缩版。
整理要贴到文档或 Issue 的代码示例
可把要放进规格书或缺陷报告的请求示例、响应示例,改成缩进整齐、易于阅读的形态。
转换为其他格式之前的预处理
先确认语法无误,在把数据交给JSON 转 TypeScript 类型定义或JSON 转 XML等转换工具时,便不必为转换端难以判明原因的报错而烦恼。
与 JSON 相关的术语
- JSON
- JavaScript Object Notation 的缩写,是 RFC 8259 所定的数据交换格式。仅由对象、数组、字符串、数值、布尔值与 null 六种构成,因不限语言皆可读写,遂成为 Web API 的标准格式。
- 格式化(美化输出)
- 按嵌套的深度加入缩进与换行,重新组织为人可阅读的形态。数据的内容不变,仅外观改变。
- 压缩(minify)
- 去除所有与语义无关的空白与换行,汇为一行。字节数减少故可压低传输量,但不适合人来阅读。
- 校验(validation)
- 确认输入是否合乎 JSON 的文法。本工具交由浏览器的解析器解析,并在失败时原样显示其错误信息。
- 转义序列
- 指在字符串中,用反斜杠表示那些无法直接书写之字符的写法。双引号写作
\",换行写作\n,制表符写作\t。 - 键的顺序
- JSON 本身并未为对象的键规定顺序。本工具需经由 JavaScript 的对象,故只有形如
"1"、"2"这类可读作整数的键会被重排为升序,其余的键则保持书写时的次序。 - UTF-8
- RFC 8259 规定 JSON 所应使用的字符编码方式。中文等 ASCII 以外的字符每字占多个字节,故字符数与字节数并不一致。
常见问题
闲话 ― JSON 胜过 XML 的原因
2000 年代初期 XML 曾是主流,但 Douglas Crockford 于 2001 年提出 JSON 后,凭借其轻量、易用、易读的特性,2010 年代以后 JSON 已成为标准格式。
同等数据下,JSON 的字节数通常比 XML 少 30~50%,在移动通信时代直接影响应用的响应速度。
RFC 8259 规定键重复为"SHOULD NOT",并非禁止。{"a":1,"a":2} 在语法上有效,但行为未定义。