sublime格式化json需先切换语法为json,否则命令不可用;pretty json插件依赖python且需手动配置快捷键和ensure_ascii=false以显示中文;仅支持纯json文本,嵌入式内容需单独处理。

JSON字符串粘贴后直接格式化不了?检查是否识别为JSON语法
Sublime默认不会把纯文本当JSON处理,哪怕内容全是{}和[]。必须先告诉编辑器:“这是JSON”,否则Ctrl+Shift+P里搜不到格式化命令。
实操建议:
- 打开文件后,点右下角语法标识(比如显示“Plain Text”),点击切换为
JSON或JSON with Comments - 如果只是临时粘贴一段字符串(比如从浏览器控制台复制的
{"name":"xxx"}),新建空文件 → 粘贴 → 手动切换语法,再格式化 - 不切换语法就按
Ctrl+Shift+P搜JSON Reindent或Pretty JSON,大概率没反应——不是插件没装好,是语法没对上
装了Pretty JSON插件但命令不生效?确认快捷键和依赖项
Pretty JSON不是开箱即用:它依赖Python环境,且默认没绑定快捷键。Windows/macOS/Linux行为还不太一样。
常见错误现象:
- 按
Ctrl+Alt+J没反应 → 插件没配置快捷键,或被其他插件占用了 - 执行命令后弹出
ImportError: No module named pathlib→ Sublime内置Python版本太低(尤其Sublime Text 3早期版) - 选中文本格式化时缩进错乱 → 输入不是合法JSON(比如多了逗号、单引号、注释)
实操建议:
- 用
Ctrl+Shift+P输入Package Control: Install Package,再搜Pretty JSON安装(别手动下载zip) - 安装完重启Sublime;然后
Ctrl+Shift+P搜Preferences: Pretty JSON Settings,确认"indent": 2这类基础项没被误删 - 想用快捷键?进
Preferences → Key Bindings,加一行:{"keys": ["ctrl+alt+j"], "command": "pretty_json"}
格式化后中文变Unicode编码?关闭escape_unicode选项
默认情况下,Pretty JSON会把中文转成\u4f60\u597d这种形式,看着像乱码,其实是标准JSON行为,但日常开发基本不需要。
实操建议:
- 打开
Pretty JSON设置(Preferences → Package Settings → Pretty JSON → Settings) - 找到
"ensure_ascii"这一项,把它改成false(注意是布尔值false,不是字符串"false") - 如果设置文件里没有这行,就手动加在
{}里面,位置随意,但要保证JSON语法合法 - 改完保存,再格式化——中文就正常显示了
只格式化选中部分JSON?小心嵌套结构和边界截断
Sublime不支持“智能提取JSON片段”。如果你在HTML或JS文件里选中一段{...}去格式化,插件会原样处理所选文本,不管它是不是独立JSON。
容易踩的坑:
- 选中
data: { "id": 1 }中的{ "id": 1 }→ 格式化后可能多出换行,破坏JS语句结构 - 选中含未闭合括号的片段(比如漏了
}),Pretty JSON直接报错退出,不提示哪错了 - 在Vue/React组件里格式化
props对象,结果把v-bind:前缀也缩进了
实操建议:
- 只对纯JSON文件或独立JSON字符串操作;混排场景先复制到新标签页再格式化
- 不确定是否合法?粘贴到
https://jsonlint.com/快速验证 - 需要频繁处理嵌入式JSON,考虑用命令行工具:
echo '{"a":1}' | python -m json.tool更可控
JSON格式化真正的麻烦点不在插件装不装得上,而在于你手里的那段文本,到底算不算JSON——少个引号、多行注释、尾随逗号,都够插件卡住。别急着查快捷键,先按Ctrl+Shift+P搜Set Syntax: JSON,再看报错信息里有没有Expecting property name这类提示。










