JSON 格式化
校验、美化、压缩。出错时会指出第几行第几列,而不是只说一句 "unexpected token" —— 位置由这一页自己扫出来,不依赖浏览器引擎的报告(新版 Chrome 对多数错误已经不报位置了)。
—
—
格式化会改动什么
它会丢掉多余的空格、统一缩进,这两样正是你想要的。但它同时也会改写数字的写法:1.0 变成 1,1e3 变成 1000,-0 变成 0。这是 JSON.stringify 的行为,不是这一页自作主张 —— 一份要拿去逐字节比对的 JSON,请注意这个差别。
为什么位置是这一页自己算的
浏览器引擎报的错措辞和内容都各不相同,而且新版的 V8 对最常见的那一类错误("多了一个逗号")根本不给位置。所以这一页先用自己的扫描器把文本走一遍,它永远知道自己停在哪个字符上,然后再交给浏览器解析取值。
常见问题
支持 JSON5 / 注释 / 单引号吗?
不支持,这是有意的。 JSON5 是另一套语法,如果这一页"顺手兼容"了注释和单引号,你会以为那份数据能被任何 JSON 解析器接受 —— 交给后端或写进配置文件时才发现不是。这一页只认标准 JSON,并且在出错时告诉你是哪一条规则。
内容会被上传吗?
不会。 解析和格式化都在这个页面里完成,没有网络请求。日志、密钥这类不该外流的内容可以放心贴。
为什么我的 JSON 一个键都没有,却显示合法?
因为 []、{}、"abc"、123 都是合法 JSON —— 顶层不必是对象。这一页报的是"这段文本能不能被解析",不是"它是不是你想要的那个结构"。
