Ctrl+Alt+L(Windows/Linux)或 Cmd+Option+L(macOS)仅对识别为JSON文件的内容生效;若JSON嵌在JS/TS字符串中,需先右键“Convert to JSON”或粘贴到独立.json文件,否则快捷键无响应。

Ctrl+Alt+L(Windows/Linux)或 Cmd+Option+L(macOS)能直接格式化编辑器里粘贴的大型 JSON 字符串,但前提是它被识别为 JSON 内容——不是纯文本,也不是嵌在 JS/TS 字符串里。
为什么粘贴进 .js 文件里的 JSON 字符串按 Ctrl+Alt+L 没反应
WebStorm 默认只对「当前文件类型」生效。如果 JSON 是写在 const data = "{...}" 里,那它只是 JavaScript 字符串字面量,IDE 不会把它当 JSON 解析或格式化。
- 选中那段 JSON 字符串 → 右键 → Convert to JSON(WebStorm 2024.3+ 自带),它会自动剥离引号、转义,变成独立 JSON 块
- 或者把这段 JSON 单独存成
.json文件再打开,快捷键才真正起效 - 若右键菜单没有
Convert to JSON,说明你用的是旧版 WebStorm,需手动复制到新.json文件中
粘贴后直接格式化,但中文变 \uXXXX
这是 WebStorm 内置 JSON 格式化器默认启用 ASCII 安全输出,跟 Prettier 无关,也不影响运行时。
- 进
Settings > Editor > Code Style > JSON - 取消勾选
Escape non-ASCII characters - 再按
Ctrl+Alt+L,中文键名和值就原样保留了
想用 Prettier 格式化 JSON 字符串,但配置了没生效
Prettier 对 JSON 的支持是显式开启的,不是装了插件就自动接管。
- 确认
Settings > Languages & Frameworks > JavaScript > Prettier中已勾选Enable Prettier for JSON files -
.prettierrc.json必须含"parser": "json"字段,否则 Prettier 会跳过 - 如果是
prettier.config.js,必须用overrides显式匹配*.json,例如:{"overrides": [{"files": "*.json", "options": {"parser": "json"}}]} - WebStorm 2024.3 之前版本对 JSON override 支持不完整,低版本即使配了也大概率走内置 formatter
批量处理多个 JSON 字符串片段(比如 API 响应日志)
没法一键全选整个日志文件格式化——除非整份日志本身就是合法 JSON 数组或对象。更现实的做法是提取 + 分离。
- 用正则
\{(?:[^{}]|(?R))*\}或简单点\{.*?\}(配合Regex Tester插件)高亮所有 JSON 片段 - 逐个
Ctrl+C→ 新建.json文件 →Ctrl+V→Ctrl+Alt+L - 若片段极多,建议导出为独立文件后,用命令行批量处理:
webstorm64.exe format --settings-path "C:\myproject\.idea" src\mocks(路径必须绝对,且mocks目录需标记为 Sources Root)
真正容易被忽略的是:WebStorm 不会主动“理解”你粘贴的内容语义。它只认文件后缀、当前语言上下文、以及你是否手动触发了类型转换。哪怕内容 100% 合法,只要没落在 JSON 文件里或没执行 Convert to JSON,它就只是字符串——格式化快捷键不会动它半下。


















