sublime text 默认不校验 json,仅语法高亮;需借助 sublimelinter-jsonlint 插件或 python -m json.tool 手动校验,二者均依赖外部解析器实现标准 json 验证。

Sublime Text 本身不校验 JSON,打开 .json 文件只是高亮语法,不会报错或提示格式问题——哪怕你少了个逗号、多了个逗号、引号没闭合,它也照常显示。真要校验,必须靠外部工具介入。
为什么 Sublime 默认不报 JSON 错误
JSON 校验不是语法高亮,而是解析行为:需要真正调用 JSON 解析器(如 Python 的 json.loads()、Node.js 的 JSON.parse())执行一次反序列化。Sublime 原生只做词法分析(tokenizing),不运行解析器,所以“看起来对”≠“能被程序读取”。
- 常见错误现象:
Unexpected token、Expecting property name enclosed in double quotes这类报错永远不会出现在 Sublime 窗口里,除非你装了校验插件 - 如果你靠肉眼检查缩进/括号配对,容易漏掉末尾多逗号(
{ "a": 1, })、单引号代替双引号、注释残留等典型问题 - Sublime 的
JSON语法定义(Syntax: JSON)仅用于着色,不触发任何验证逻辑
用 SublimeLinter + SublimeLinter-jsonlint 实现实时校验
这是最稳定、响应快、集成度高的方案,依赖 jsonlint CLI 工具作为后端。
将一个或多个视频上传至YouTube。当用户想“上传到YouTube”“发YouTube”“批量上传”“upload to YouTube”“post videos to YouTube”或发布到YouTube时使用此技能。
- 先确保系统已安装
jsonlint:npm install -g jsonlint(Node.js 环境)或pip install jsonlint(Python 环境) - 通过 Package Control 安装两个插件:
SublimeLinter和SublimeLinter-jsonlint(注意名字带连字符,不是jsonlint单独插件) - 安装后无需额外配置,默认就会监听
source.json类型文件;出错时行首出现红色小图标,悬停显示具体错误位置和原因 - 若不生效,检查
Preferences → Package Settings → SublimeLinter → Settings中是否启用了"sublimelinter": "save"或"on_load",并确认jsonlint可被 Sublime 找到(Windows 用户可能需在设置里显式指定"paths")
用自定义 Build System 快速手动校验
适合临时验证单个文件、不想装插件、或 CI 场景下复用命令逻辑。
- Tools → Build System → New Build System,粘贴以下内容(以 Python 版本为例):
{
"cmd": ["python", "-m", "json.tool", "$file"],
"file_regex": "^(.*?):([0-9]+):([0-9]+): (.*)$",
"selector": "source.json",
"quiet": true
}
python -m json.tool 是 Python 自带工具,无需额外安装,校验失败时会输出错误行号和消息(如 Expecting property name enclosed in double quotes)JSON Validate.sublime-build,之后打开任意 .json 文件,按 Ctrl+B 即可运行;成功则底部面板输出格式化后的 JSON,失败则直接标出行号json.tool 不支持注释、尾随逗号(trailing comma)、单引号——这反而是好事,它强制你写符合标准的 JSON别踩这些坑
JSON 校验看似简单,但几个细节不注意就白忙活:
- 不要用
SublimeLinter-jshint或eslint校验 JSON 文件——它们是为 JS 设计的,会把true当变量、把对象当表达式,报一堆无关错误 - 避免用在线校验网站复制粘贴再回填,尤其含敏感字段(API key、token)时,有泄露风险
- 如果 JSON 文件路径含中文或空格,
json.tool在 Windows 上可能报错;建议改用绝对路径或先 cd 到目录再运行命令 - 某些 API 返回的“类 JSON”(如 MongoDB 的 BSON 输出、Redis 的 RESP 格式)不是标准 JSON,
json.tool必然失败——得先清洗再校验










