SomeeLab.tools

JSON 格式化与校验

格式化、压缩并校验 JSON,出错时直接定位到行。无需注册,全部在浏览器中完成。

找出出错的位置

粘贴的 JSON 无法解析时,页面会给出解析器停下的行和列。先别急着盯住那个位置,往上看一行。逗号多写或少写,解析器要到下一个记号才发现,所以报出来的位置通常在真正的错误之后。

出错的原因就那几种。

  • 末尾多余的逗号。 JavaScript 对象里允许,JSON 里是错误。
  • 单引号。 'name' 不是 JSON 字符串,键和值都要用双引号。
  • 注释。///* */ 的配置文件是 JSONC,不是 JSON。
  • 不加引号的键。 {name: "值"} 是 JavaScript 的写法。
  • NaNInfinity 看着像数字,但不在 JSON 规范里,常常是从日志里复制时带进来的。

什么时候用压缩

压缩会去掉所有可省略的空白,把整个文档变成一行。要塞进配置项、放进一个环境变量、或者作为 curl 的请求体时,就需要这种形态。它也能减小体积,不过服务器本来就会用 gzip 压缩响应,单靠体积很少构成理由。

要提交进代码仓库的文件请保留缩进。压缩后的 JSON 改一个字符,差异就会变成整份文件,没人看得动。

键的顺序和缩进

格式化不会改动键的顺序。规范里说对象的键顺序没有意义,但实际上几乎所有解析器都保留写入顺序,所以这个工具也不做排序。

缩进用 2 个空格最常见,4 个空格多见于 Python 相关的工具链。制表符能省几个字节,但在不同编辑器里宽度不一样。团队仓库里跟着现有的写法走就行。

粘贴令牌和真实响应时

输入不会被发送到任何地方。文本只在浏览器里解析再重新序列化,含客户资料的响应或访问令牌都不会离开这台设备。不过有些公司无论工具怎么实现都禁止使用外部网站,如果是生产数据,请先确认规定。