Sublime需装Package Control和SublimeLinter-jsonlint插件并配置系统jsonlint工具,设语法为JSON、UTF-8编码、空格缩进2,才能实现实时JSON语法校验与报错。

Sublime默认不检查JSON语法,装插件前先确认Package Control已就位
没装Package Control,所有JSON校验插件都无效——Ctrl+Shift+P输Install Package没反应,就说明它没装。必须手动安装:按Ctrl+`打开控制台,粘贴官网最新Python脚本(2026年仍有效),回车,然后重启Sublime。不重启,右下角不会出现JSON语法选项,插件命令也加载不了。
用SublimeLinter-jsonlint实现实时报错,不是jsonc也不是jshint
要真正看到Unexpected token或Expecting property name这类错误提示,必须用SublimeLinter-jsonlint(注意名字带连字符,不是jsonlint单独包)。它依赖系统级jsonlint命令行工具:
- Node.js用户运行
npm install -g jsonlint - Python用户运行
pip install jsonlint - Windows用户若不生效,需在
Preferences → Package Settings → SublimeLinter → Settings里显式配置"paths",指向jsonlint可执行文件所在目录
装完两个插件(SublimeLinter和SublimeLinter-jsonlint)后,确保文件右下角是JSON(不是Plain Text或JavaScript),错误才会在行首标红图标,悬停显示具体位置。
格式化和校验别混用,Pretty JSON在ST4上容易崩溃
想格式化又顺带校验?别选Pretty JSON——它在Sublime Text 4上常报ImportError: No module named 'sublime',因为依赖旧版Python环境。更稳妥的是:
- 用
HTML-CSS-JS Prettify:装完必须进Preferences → Package Settings → HTML-CSS-JS Prettify → Settings,硬性写入"json": true、"detect_indentation": false、"indent_size": 2、"ensure_ascii": false - 用
JSON Reindent:只缩进、不改内容、不删尾随逗号,适合你已用python -m json.tool yourfile.json验证过合法性的场景
任何格式化操作前,三个条件缺一不可:Set Syntax: JSON、编码为UTF-8(不是UTF-8 with BOM)、缩进统一为空格且宽度为2。
常见静默失败原因:BOM头、单引号、注释残留全被忽略
Sublime语法高亮只做括号配对染色,根本不管这些:
-
{ "name": "Alice", }(末尾多逗号)→ 不报错,但JSON.parse()会炸 -
{ 'name': "Alice" }(key用单引号)→ 高亮照常,实际非法 -
// comment或/* ... */→ JSON标准不支持,但高亮不拦,接口直接400
真正起作用的只有调用解析器的行为:要么插件后台跑jsonlint,要么你手动执行python -m json.tool yourfile.json。别信“看起来对”,得让解析器吐出True才算过关。











