sublime text默认不校验json,需安装sublimelinter-json等插件并手动配置jsonlint或jq路径,确保文件类型为json、编码为utf-8,且校验模式设为on_save以避免卡顿。

Sublime Text 本身不校验 JSON,必须靠外部工具(如 jsonlint 或 Node.js 内置的 node -p "JSON.parse(fs.readFileSync('x.json'))")配合插件完成;直接装个 SublimeLinter-json 并不能自动生效——它只负责调用命令,而命令本身得你亲手配对、可执行、路径正确。
为什么保存 JSON 文件没反应?jsonlint 没被找到
现象:打开 .json 文件,修改后保存,右下角没显示“JSON: 1 error”,控制台也无报错——不是插件失效,是 Sublime 根本没调起校验命令。
- 先在终端运行
jsonlint --version,如果报command not found,那插件一定失败 - 别依赖全局安装:
npm install -g jsonlint在 nvm 多版本或权限受限环境里常失效;推荐项目本地装:npm install jsonlint --save-dev - 确保你在 Sublime 是通过
Project → Add Folder to Project打开整个项目目录(不是单个.json文件),否则插件无法向上查到node_modules/.bin/jsonlint - 手动指定路径最可靠:打开
Preferences → Package Settings → SublimeLinter → Settings,在用户配置中加:
{
"linters": {
"jsonlint": {
"executable": ["./node_modules/.bin/jsonlint"]
}
}
}
./ 是相对当前文件所在项目根目录的路径,不是 Sublime 安装目录——Windows 用户尤其容易填成 C:\Users\...\jsonlint.cmd 这类绝对路径,结果插件静默跳过。
SublimeLinter-json 插件装了但不识别 .json 文件
现象:插件已安装,jsonlint 命令终端可用,但 Sublime 对 .json 文件完全无 lint 行为。
使用 JSON Schema 验证 JSON 数据,从示例 JSON 生成 schema,并将其转换为 TypeScript 接口、Python 数据类或 Markdown 文档。
- 确认文件语法类型是否为
JSON:右下角状态栏应显示JSON,不是Plain text或JavaScript;若不对,点击状态栏 →Set Syntax → JSON -
SublimeLinter-json默认只对scope:source.json生效,而某些 JSON 文件(如带注释的.jsonc)会被识别为source.jsonc,需额外配置:
"linters": {
"jsonlint": {
"selector": "source.json, source.jsonc"
}
}
- 检查是否有其他插件冲突(比如
AutoFileName或旧版JSONLint),临时禁用它们再试
校验失败但不报具体错误位置?jsonlint 输出格式不兼容
现象:Sublime 显示 “JSON: 1 error”,但悬停无提示,左侧 gutter 无标记,错误面板里只有模糊的 Parse error on line 1。
-
jsonlint默认输出是人类可读文本,不是 SublimeLinter 要的机器可解析格式;必须加--format=checkstyle或--quiet(部分版本支持) - 更稳方案是换用
jq(轻量、跨平台、原生支持结构化错误):
"linters": {
"jsonlint": {
"executable": ["jq"],
"args": ["-n", "fromjson"]
}
}
注意:jq 的 fromjson 不接受文件路径,所以需配合 SublimeLinter 的 stdin 模式(默认启用);Mac/Linux 自带或 brew install jq,Windows 可从 jq 官网 下载 jq.exe 并加入 PATH。
想让 JSON 校验只在保存时触发,避免实时卡顿
JSON 文件较大(如导出的数据集)时,background 模式会频繁调用解析器,造成编辑卡顿或 CPU 占用飙升。
- 关闭实时检查,改用保存触发:在 SublimeLinter 用户设置中加
"lint_mode": "on_save"
- 若仍需偶尔手动检查,用快捷键:
Ctrl+Shift+P→ 输入SublimeLinter: Lint This View(默认无绑定,可自定义) - 避免误触:不要在
linters里设"disable_if_no_config_file": true,JSON 不需要配置文件,设了反而导致未识别
真正容易被忽略的是:JSON 校验工具本身不处理编码 BOM 或 UTF-8 with BOM 文件头,遇到 Unexpected token \u0000 类错误,先用 Sublime 的 File → Reopen with Encoding → UTF-8 清掉 BOM 再试。










