VSCode 的 JSON 格式化行为由格式化器、语言模式和校验规则共同决定:缩进需设 editor.tabSize 为 2 并启用 insertSpaces;注释需切至 JSONC 模式;Pretterr 需显式配置 defaultFormatter 和 parser: "json",且不支持尾逗号与单引号。

VSCode 本身不提供“代码风格”抽象配置项,所谓改风格,本质是控制格式化器行为、语言模式识别和校验规则三者的组合效果。JSON 场景下尤其明显:改缩进、改引号、改换行,全得靠背后工具链选型和参数干预,不是调个主题就能变的。
怎么让 JSON 格式化用 2 空格而不是 4
VSCode 内置 JSON 格式化器(vscode.json-language-features)不支持自定义缩进宽度——它只认 editor.tabSize 全局设置,且仅在「插入空格」模式下生效。
- 确保
editor.insertSpaces为true - 把
editor.tabSize设为2(全局或语言级) - 对 JSON 单独加语言级配置:
"[json]": { "editor.tabSize": 2 } - 若用了 Prettier,它会覆盖内置行为;此时需在
.prettierrc里设"tabWidth": 2,并确认prettier.disableLanguages没禁用json
注意:json.format.enable 必须为 true,否则连基础格式化都触发不了。
为什么 JSON 文件里写注释后格式化就报错
标准 JSON 不允许注释,VSCode 的 json 语言模式严格遵循 RFC 8259;一旦检测到 // 或 /* */,就会标记 Invalid character 错误,且格式化快捷键(Shift+Alt+F)直接失效。
- 要保留注释,必须手动切换语言模式为
JSONC(点击右下角 → 选JSON with Comments) -
JSONC模式下格式化可用,但校验会跳过注释行,无法发现注释内语法错误 - 如果项目需要带注释的配置文件,建议统一用
.jsonc后缀,并在settings.json中加:"files.associations": { "*.jsonc": "jsonc" }
别指望格式化按钮帮你“修好”注释——它只美化合法结构,不转换语法。
将一个或多个视频上传至YouTube。当用户想“上传到YouTube”“发YouTube”“批量上传”“upload to YouTube”“post videos to YouTube”或发布到YouTube时使用此技能。
怎么让 VSCode 自动用 Prettier 格式化 .json 文件
Prettier 默认不处理 .json 文件,即使你装了插件、开了 formatOnSave,它也会静默跳过。
- 在用户或工作区
settings.json中显式指定默认格式化器:"[json]": { "editor.defaultFormatter": "esbenp.prettier-vscode" } - 同时禁用 Prettier 对 JSON 的自动屏蔽:
"prettier.disableLanguages": []
(清空数组,或干脆删掉这一项) - 确保项目根目录有
.prettierrc,且含"parser": "json"(Prettier v3+ 需要) - 验证方式:打开任意
.json文件,按Shift+Alt+F,看右下角是否显示 “Prettier” 而非 “JSON Language Features”
常见坑:Prettier 的 JSON parser 不支持尾逗号(,)和单引号,强行用会报错;如需这些特性,只能退回 JSONC 模式 + 内置格式化器。
保存时自动格式化但 JSON 没反应?查这三处
格式化静默失败,90% 是链路断在中间某环,不是插件坏了。
- 右下角语言模式是不是
Plain Text或JSONC?必须是JSON才触发内置校验 + 格式化逻辑 -
editor.formatOnSave是true,但[json]下的editor.defaultFormatter被设成了null或不存在的 ID - 项目级
.vscode/settings.json里写了"json.format.enable": false,直接关掉了整个功能
最易被忽略的是:VSCode 的 JSON 格式化器从不修复语法错误(比如缺引号、多逗号),它只对已合法的 JSON 做缩进和换行。校验红线还在,格式化就永远不会成功——先修语法,再按快捷键。

















