sublime text默认不校验json语法,需安装sublimelinter-jsonc插件、将文件类型设为json或jsonc,并手动配置schema路径(如file:///c:/schemas/api.json),否则无法报错。

Sublime Text 本身不校验、不格式化 JSON,所有功能都依赖插件;装错或配错,轻则快捷键失效,重则把 null 改成 "null" 或静默吞掉注释。
怎么让 Sublime 真正报出 JSON 语法错误
默认高亮只是按括号配对染色,{key: "value"}、尾随逗号、单引号、null 后多逗号——全都不报。必须用校验器,且得选对类型:
- 用
SublimeLinter-jsonc插件(不是json或jshint),否则带//注释的.jsonc文件直接被拒 - 文件右下角必须点成
JSON或JSONC,留着Plain Text就等于没开开关 - 校验器不自动绑定文件:哪怕你写了
"$schema": "https://...",Sublime 也完全无视——得手动在插件设置里配schemas列表 - Windows 上本地 Schema 路径写
file:///C:schemaspi.json会因反斜杠转义失败,得改成file:///C:/schemas/api.json或file:///C:\schemas\api.json
格式化时为什么中文变乱码、缩进忽大忽小
这不是插件坏了,是 Sublime 自身编码和缩进配置跟插件打架:
Miller (mlr) 是一个命令行工具,用于查询、整形和重新格式化名称索引数据,如 CSV、TSV、JSON 和 JSON Lines。它将 awk、sed、cut、join 和 sort 的功能整合到一个专为结构化数据处理而构建的单一工具中。
- 文件编码必须是
UTF-8,不能是UTF-8 with BOM——BOM 会让js-beautify解析失败,报Unexpected token却不提示原因 - 执行
View → Indentation → Convert Indentation to Spaces,再设Indent Using Spaces宽度为2 - 插件设置里必须关掉
detect_indentation,否则它会根据第一行猜缩进,导致同一文件里混用 2 空格和 4 空格 - 别用
JsFormat:它把 JSON 当 JS 解析,会删反斜杠、转义中文、把null强制变成字符串
Ctrl+Alt+J 没反应?先查这三处
快捷键失效几乎全是状态没对齐,不是插件没装:
- 当前文件右下角是否显示
JSON?点一下手动切过去,.config.json有时会被识别成Plain Text - 内容是否含非法结构?
Pretty JSON不支持注释,HTML-CSS-JS Prettify对trailing comma更宽容,但遇到'key': 'value'(单引号)仍会崩 - 快捷键是否被系统占用?Windows 下
Ctrl+Shift+H常被输入法抢,建议在Preferences → Key Bindings里加专属绑定,带上source.jsoncontext 限定作用域
真正难调的是 Schema 校验:它不报“字段缺失”,只报“字段类型不符”或“多了额外字段”,而错误提示常卡在嵌套深的 object 里,得一层层展开看 —— 这时候别硬扛,复制片段去 jsonschemalint.com 单独跑,比在 Sublime 里反复删 additionalProperties 快得多。










