原始 JSON
格式化结果
格式化结果会显示在这里。
格式化、压缩、校验三件事一个页面搞定,出错会精确指到第几行第几列。
格式化结果会显示在这里。
这是一个纯前端的 JSON 格式化与校验工具,格式化、压缩、语法检查三件事放在一起做。和多数在线工具不同的是,它不做解析再序列化,而是自己扫描一遍原始文本,只调整空白和缩进,所以数字的写法不会被悄悄改掉。
| 错误写法 | 问题 | 正确写法 |
|---|---|---|
| {"a":1,} | 对象最后一个元素后多了逗号 | {"a":1} |
| {'a':1} | 键用了单引号 | {"a":1} |
| {"a":undefined} | JSON 没有 undefined | {"a":null} |
| {"a":1} {"b":2} | 根位置出现了两个值 | [{"a":1},{"b":2}] |
| {"a":01} | 数字不能有前导零 | {"a":1} |
用 JSON.parse 再 JSON.stringify 的做法,会把 1.0 变成 1、把 1e3 变成 1000,超过 16 位的整数还会丢精度。做接口调试时,这类静默改动很容易掩盖问题。本工具只动空白,数值一个字符都不改。
报错不只是说「有语法错误」,而是指到具体位置,并把出错的那一行前后都显示出来,下方用尖括号标出错的字符。JSON 压缩成一行时这个功能尤其有用。
缩进和换行在 JSON 里都是无意义的字符。一个层级较深的配置,格式化与压缩之间的体积差异经常能到三成以上。往接口里传数据用压缩版,人看的时候用格式化版。
字符串里的中文原样输出,不会变成一串 \uXXXX。如果接口要求 ASCII 安全的写法,那需要在传参时单独处理,格式化工具不该替你做这个决定。
因为它没有走 JSON.parse 再 JSON.stringify 那条路。工具自己做词法分析,按原样保留每个数字的写法,只调整空白与缩进。
按字符位置精确计算。先定位出错字符的下标,再换算成行列,并把前后一行显示出来,出错处下方用尖括号指出。
JSON 标准不允许对象或数组最后一个元素后面跟逗号。{"a":1,} 在 JavaScript 里合法,在 JSON 里非法,很多接口因此报错。
不会。工具原样保留字符串里的中文,不做多余的转义转换。
不会。排序只作用在对象的键上,数组元素的顺序始终保留原样。
几百 KB 基本是一瞬间的事,接近几 MB 时会有一点延迟。超大文件建议用命令行工具处理。
以下站点与本站长期互链,内容各自独立运营,点击将在新窗口打开。