格式化、压缩与校验 JSON
JSON 格式化工具做三件事:把压缩成一行的 JSON 按 2 空格缩进重新排版,方便阅读;把带缩进的 JSON 压缩成单行,减少传输体积;以及只做语法校验。当 JSON 有语法错误时,工具会给出出错的位置和原因,比如缺少逗号、引号不配对、多了尾随逗号等,不用你自己在几百行里肉眼找。
所有解析都在浏览器里用原生 JSON.parse 完成,你的数据不会发送到任何服务器,处理包含内部接口地址、测试数据的内容也是安全的。
API 响应与配置文件中的 JSON
调试 API 时,后端返回的响应常常是压缩过的单行 JSON,贴进来格式化后层级一目了然。修改 package.json 等严格 JSON 文件前,可以先检查语法。VS Code 的 settings.json、tasks.json 和 launch.json 使用 JSONC,允许注释,并接受尾随逗号(会提示警告),不能直接按严格 JSON 判断其有效性。本工具只检查 JSON 语法,不执行 JSON Schema 校验。排查日志里的 JSON 片段时,格式化后配合搜索能快速定位字段。
反向用法也很常见:提交配置或写死 mock 数据时,用“压缩为单行”把 JSON 压小,减少体积。
JSON 语法规则与数据类型
本工具使用 JSON.parse,只接受严格 JSON:键必须用双引号,不允许尾随逗号、注释、单引号字符串或 undefined。带注释的内容可能是 JSONC、JSON5 或其他格式,不能仅凭注释判断为 JSON5。JSON5 还支持单引号字符串、未加引号的键等语法。仅删除注释不一定能得到有效 JSON;需要转换所有不受支持的语法,或使用与原格式匹配的解析器。
另外 JSON 不保证字段顺序的语义(虽然本工具会保留原顺序输出),也不支持日期、正则等类型——它们在 JSON 里只能是字符串。
格式化 JSON 会改变大整数或重复键吗?
会。解析与序列化使用 JavaScript。超过 Number.MAX_SAFE_INTEGER(9,007,199,254,740,991)的整数可能丢失精度;重复对象键只保留最后一个值。需要精确保存的标识符应使用字符串,在意这些细节时请保留原始输入。