Ctrl+Alt+L(Windows/Linux)或 Cmd+Option+L(macOS)是WebStorm中格式化JSON的唯一可靠快捷键,但需满足文件类型为JSON、焦点在编辑器、无系统级快捷键冲突等条件;中文乱码需取消“Escape non-ASCII characters”;Prettier支持需显式启用并配置parser;批量格式化需标记Sources Root;展开/折叠与格式化互不影响。

WebStorm 里处理 JSON,Ctrl+Alt+L(Windows/Linux)或 Cmd+Option+L(macOS)是唯一真正可靠的“一键格式化”入口——但它不是万能的,按了没反应、中文变 \uXXXX、缩进错乱,基本都是配置或识别问题,不是快捷键坏了。
为什么 Ctrl+Alt+L 按下后毫无反应
这不是快捷键失效,而是触发条件没满足:
- 系统级软件(如 QQ、钉钉、网易云音乐)劫持了该组合键,临时退出它们再试,比重绑快捷键更有效
- 右下角状态栏显示的是
Plain Text或JavaScript,而非JSON—— 右键文件 →Override File Type→ 选JSON - 光标焦点不在编辑器主区域(比如停在 Terminal 或 Run 窗口),快捷键完全不响应
- 文件扩展名非常规(如
.config.json或.schema.json),需到Settings > Editor > File Types > JSON的Registered Patterns里手动添加
格式化后中文被转成 \uXXXX
这是 WebStorm 把 JSON 当作纯 ASCII 输出了,跟 Prettier 无关,是 IDE 内置 JSON formatter 的编码策略问题:
- 进入
Settings > Editor > Code Style > JSON - 取消勾选
Escape non-ASCII characters - 再执行
Ctrl+Alt+L,中文键名和字符串就能原样保留 - 注意:这个设置只影响 IDE 内格式化行为,不影响
JSON.stringify()或后端json_encode()的运行时输出
想用 Prettier 格式化 JSON,但没生效
Prettier 对 JSON 的支持是“有条件启用”的,旧版本(2024.3 之前)甚至会静默忽略配置:
- 在
Settings > Languages & Frameworks > JavaScript > Prettier中必须勾选Enable Prettier for JSON files -
.prettierrc.json里要显式声明解析器:"parser": "json" - 如果用
prettier.config.js,导出对象中必须含overrides规则,例如:{"overrides": [{"files":"*.json","options":{"parser":"json"}}]} - WebStorm 2024.3+ 才完整支持 JSON override;低版本即使配了也可能不走 Prettier,仍走内置 formatter
批量格式化整个文件夹里的 JSON 文件
右键文件夹 → Reformat Code 看似简单,但实际受硬性约束:
- 该文件夹必须是
Sources Root(右键 →Mark Directory as > Sources Root),否则菜单灰色或仅处理部分文件 - 对话框中默认只列匹配当前语言规则的文件;想加
*.json或排除!*.test.json,得点右上角Filter手动输入 -
Optimize imports对 JSON 无效,勾选它不会删冗余字段或补缺失 key - 所有配置修改后,WebStorm 不会自动重写已有代码——你必须手动触发一次
Ctrl+Alt+L或右键执行
最容易被忽略的一点:JSON 的“展开/折叠”和“格式化”是两套独立机制。Ctrl+Alt+L 只管空格与换行,节点收放靠 Ctrl+Shift+NumPad +(展开全部)或 Ctrl+Shift+NumPad -(折叠全部),混用会导致你以为“格式化失败”。


















