VS Code 内置 JSON 格式化功能足够用,无需额外插件;失效主因是语言模式非 JSON、json.format.enable 未启用、默认格式化器被覆盖或文件未保存,合法输入和正确配置才是关键。

VS Code 里格式化 JSON 不需要额外装插件——内置的 vscode.json-language-features 就够用,装多了反而容易冲突、快捷键失灵、甚至把 true 格式化成 True 导致接口报错。
按 Shift+Alt+F 没反应?先看右下角语言模式和默认格式化器
VS Code 不会自动把任意文本当 JSON 处理。常见失效原因:
- 右下角显示的是
Plain Text或JavaScript,不是JSON—— 点击它,手动选JSON - 语言模式是
JSON with Comments(即.jsonc)但设置里没开支持 ——json.format.enable必须为true -
editor.defaultFormatter被全局设成esbenp.prettier-vscode,而它对 JSON 支持有限,尤其会破坏.jsonc注释或误转布尔值 - 你正编辑的是未保存的临时文件(untitled),VS Code 默认不启用语言功能 —— 先保存为
.json或.jsonc
vscode.json-language-features 能做什么、不能做什么
这是 VS Code 自带的 JSON 支持扩展(1.85+ 已深度集成),无需安装,但需正确启用:
- ✅ 支持标准 JSON 和
.jsonc(带//或/* */注释) - ✅ 自动缩进、换行、空格对齐,缩进大小由
editor.tabSize控制 - ✅ 保存时自动格式化(开启
editor.formatOnSave即可) - ❌ 不重排键名顺序(JSON 对象本身无序,强行排序需外部工具如
jq) - ❌ 不压缩 JSON(去除空格/换行)—— 压缩是反向操作,得用
JSON Tools的Ctrl+Alt+M或命令行jq -c
粘贴过来的 JSON 格式化失败?大概率不是插件问题,是内容不合法
从浏览器 Network 面板、curl 输出或文档里复制的内容,常混入非 JSON 成分:
- 开头有 BOM 字节(
\ufeff)→ 右键 →Reopen with Encoding→ 选UTF-8 - 响应体其实是 HTML 错误页(比如 404、502)→ 先用
curl -v看Content-Type: application/json是否存在 - 含中文引号、全角空格、零宽字符(
\u200b)→ 用正则/[\u200b-\u200f\u202a-\u202f\u2060-\u206f\ufeff]/g清理 - 想快速验证合法性:终端执行
echo '{"a":1}' | jq empty,不报错即合法
真要装插件?只推荐两个明确分工的
如果内置功能仍不能满足,再考虑轻量补充,避免全家桶:
-
JSON Tools:专注“压缩/美化”切换,快捷键Ctrl+Alt+M(美化)、Alt+M(压缩),不碰语法校验,适合快速处理粘贴数据 -
Command Line Tools+jq:离线最稳,cat data.json | jq '.'美化,jq -c '.'压缩,还能做字段筛选、类型转换等,适合 CI 或脚本集成
别信“一键全搞定”的插件宣传——JSON 格式化的核心矛盾从来不在界面按钮多寡,而在输入是否干净、语言模式是否匹配、格式化器是否被意外覆盖。这三个点没理清,装十个插件也救不了 Unexpected token。


















