必须先安装Package Control,再根据需求选插件:JSON Reindent只缩进不校验,JSONPretty静默失败不提示,Pretty JSON可校验报错但需手动配快捷键和ensure_ascii=false;格式化前须确认语法模式为JSON、内容合法、编码为UTF-8无BOM。

Sublime Text没装Package Control就别试格式化
所有 JSON 格式化插件都依赖 Package Control,它不是可选项,是前提。按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS)调不出命令面板,或者输入 Install Package 没反应,基本等于没装。别跳过这步——去官网复制 Python 安装脚本,粘贴进 View → Show Console 执行,然后必须重启 Sublime Text。
选哪个插件:JSON Reindent、JSONPretty 还是 Pretty JSON?
三者行为差异明显,选错会白忙活:
-
JSON Reindent:只重排缩进和换行,不校验语法,不改字段顺序,不报错。非法 JSON(比如末尾多逗号、单引号)会原样缩进甚至崩溃。适合已知合法、只要对齐的场景。 -
JSONPretty:纯 Sublime 原生实现,不依赖外部环境,快捷键默认Ctrl+Shift+H(macOS 是Cmd+Shift+H),但静默失败——错一个字符就毫无反应,也不提示。 -
Pretty JSON:能校验、能报错、能美化、支持中文显示(需设"ensure_ascii": false),但依赖 Sublime 内置 Python,老版本 ST3 可能报ImportError: No module named pathlib;安装后默认没绑定快捷键,得手动加{"keys": ["ctrl+alt+j"], "command": "pretty_json"}到用户键位文件。
格式化前必须确认三件事
否则大概率失败且无提示:
- 文件语法模式必须是
JSON或JSON with Comments:右下角点开语言名,手动切换。粘贴一段 JSON 到空文件里,默认是Plain Text,命令根本不可用。 - 内容必须是合法 JSON:不能有单引号、尾随逗号、注释、undefined 或 NaN。验证方法:终端跑
python -m json.tool yourfile.json,或浏览器控制台执行JSON.parse(你的字符串)。 - 编码必须是 UTF-8 无 BOM:BOM 会导致解析失败,Sublime 里看右下角编码标识,如果不是
UTF-8,用File → Reopen with Encoding → UTF-8重载。
快捷键冲突或失效时怎么修
常见组合如 Ctrl+Alt+J、Ctrl+Shift+H 容易被输入法、终端模拟插件或系统级快捷键占用:
- 先确认命令是否存在:按
Ctrl+Shift+P输入pretty_json或json_pretty_print,看是否列出对应命令——名字必须完全匹配,json_reindent是另一个插件的命令。 - 手动绑定:打开
Preferences → Key Bindings,在右侧用户文件里加一行,例如:[{"keys": ["ctrl+alt+j"], "command": "pretty_json"}]注意 JSON 语法要合法,结尾不能多逗号。 - Mac 用户注意:
Ctrl要换成super(即Cmd),写成["super+alt+j"],不是["cmd+alt+j"]。
最常被忽略的是语法模式和 JSON 合法性——这两项不满足,再好的插件也动不了光标。别急着重装,先点右下角、再跑 json.tool,90% 的“格式化失败”问题当场解决。


















