如何用Sublime Text一键美化JSON数据,安装PrettyJSON插件实现格式化?
- 内容介绍
- 文章标签
- 相关推荐
本文共计922个文字,预计阅读时间需要4分钟。
Sublime Text 本身不支持一键美化 JSON,需要安装插件;安装了 Pretty JSON 后不代表就能用——它默认没有快捷键、不自动识别中文、遇到+BOM或单引号就静默失败,这些才是你按 Ctrl+Alt+J 没有反应的真实原因。
为什么 Pretty JSON 装完还是不能格式化?
不是插件坏了,是三个关键状态没对齐:
- 右下角语法模式必须是
JSON(不是Plain Text、JavaScript或JSON with Comments)——点一下右下角语言名手动切过去 - 文件编码必须是
UTF-8,不能是UTF-8 with BOM:菜单栏File → Reopen with Encoding → UTF-8,再确认右下角显示“UTF-8” -
Pretty JSON默认不绑定快捷键,Ctrl+Alt+J是用户常配的,不是插件自带的——得自己加进Preferences → Key Bindings
怎么配出真正能用的 Ctrl+Alt+J?
别复制网上残缺配置,直接在用户键位文件里加这一行(右侧面板):
[{"keys": ["ctrl+alt+j"], "command": "pretty_json"}]
注意:command 名字必须是 pretty_json,大小写和下划线都不能错;如果已存在冲突绑定(比如被其他插件占用了),这条会覆盖它。
生效前务必检查:
- 是否重启过 Sublime?插件安装后首次启用必须重启
- 是否只在
.json文件或已切为JSON语法的窗口里测试?在 JS 文件里按这个键不会触发 - 是否全选了内容?
Pretty JSON对未选中内容默认不操作,不像html_css_js_prettify那样自动作用于全文
中文变 \u4f60\u597d 怎么办?
这是 Pretty JSON 的默认行为,不是乱码,是它把中文转义成 Unicode 字符串了。解决方法很简单:
打开 Preferences → Package Settings → Pretty JSON → Settings,把这行加进去(或改成 false):
"ensure_ascii": false
保存后重试。别写成 "ensure_ascii": "false"——字符串值无效,必须是布尔值 false。
另外注意:Pretty JSON 不修复语法错误。如果粘贴的是带单引号、尾逗号或注释的 JSON(比如从浏览器控制台直接复制的),它会直接报错或输出空白——先用在线工具校验,或者换用 html_css_js_prettify。
格式化后缩进忽大忽小、混着 Tab?
这不是插件问题,是 Sublime 自身缩进设置和插件打架:
- 执行
View → Indentation → Convert Indentation to Spaces,把所有 Tab 强制转为空格 - 再点
Indent Using Spaces,设缩进宽度为2 - 打开
Pretty JSON设置,确保没有"detect_indentation": true——这行会覆盖你手动设的空格数,导致缩进飘忽
真正容易被忽略的是:一旦你用 Pretty JSON 格式化过一次,它就会记住这次的缩进风格,并在下次尝试复用——哪怕你已经改了全局设置。所以第一次配完,务必手动全选 + Ctrl+Alt+J 触发一次,让它“认领”你当前的空格配置。
本文共计922个文字,预计阅读时间需要4分钟。
Sublime Text 本身不支持一键美化 JSON,需要安装插件;安装了 Pretty JSON 后不代表就能用——它默认没有快捷键、不自动识别中文、遇到+BOM或单引号就静默失败,这些才是你按 Ctrl+Alt+J 没有反应的真实原因。
为什么 Pretty JSON 装完还是不能格式化?
不是插件坏了,是三个关键状态没对齐:
- 右下角语法模式必须是
JSON(不是Plain Text、JavaScript或JSON with Comments)——点一下右下角语言名手动切过去 - 文件编码必须是
UTF-8,不能是UTF-8 with BOM:菜单栏File → Reopen with Encoding → UTF-8,再确认右下角显示“UTF-8” -
Pretty JSON默认不绑定快捷键,Ctrl+Alt+J是用户常配的,不是插件自带的——得自己加进Preferences → Key Bindings
怎么配出真正能用的 Ctrl+Alt+J?
别复制网上残缺配置,直接在用户键位文件里加这一行(右侧面板):
[{"keys": ["ctrl+alt+j"], "command": "pretty_json"}]
注意:command 名字必须是 pretty_json,大小写和下划线都不能错;如果已存在冲突绑定(比如被其他插件占用了),这条会覆盖它。
生效前务必检查:
- 是否重启过 Sublime?插件安装后首次启用必须重启
- 是否只在
.json文件或已切为JSON语法的窗口里测试?在 JS 文件里按这个键不会触发 - 是否全选了内容?
Pretty JSON对未选中内容默认不操作,不像html_css_js_prettify那样自动作用于全文
中文变 \u4f60\u597d 怎么办?
这是 Pretty JSON 的默认行为,不是乱码,是它把中文转义成 Unicode 字符串了。解决方法很简单:
打开 Preferences → Package Settings → Pretty JSON → Settings,把这行加进去(或改成 false):
"ensure_ascii": false
保存后重试。别写成 "ensure_ascii": "false"——字符串值无效,必须是布尔值 false。
另外注意:Pretty JSON 不修复语法错误。如果粘贴的是带单引号、尾逗号或注释的 JSON(比如从浏览器控制台直接复制的),它会直接报错或输出空白——先用在线工具校验,或者换用 html_css_js_prettify。
格式化后缩进忽大忽小、混着 Tab?
这不是插件问题,是 Sublime 自身缩进设置和插件打架:
- 执行
View → Indentation → Convert Indentation to Spaces,把所有 Tab 强制转为空格 - 再点
Indent Using Spaces,设缩进宽度为2 - 打开
Pretty JSON设置,确保没有"detect_indentation": true——这行会覆盖你手动设的空格数,导致缩进飘忽
真正容易被忽略的是:一旦你用 Pretty JSON 格式化过一次,它就会记住这次的缩进风格,并在下次尝试复用——哪怕你已经改了全局设置。所以第一次配完,务必手动全选 + Ctrl+Alt+J 触发一次,让它“认领”你当前的空格配置。

