VSCode不能运行JSON,因其仅为数据格式;Shift+Alt+F无反应主因是语言模式非JSON(需右下角切为JSON)、文件无.json扩展名、内容含单引号/尾逗号等非法字符,或json.format.enable被禁用。

VSCode 不能“运行” JSON 代码——JSON 不是可执行语言,它只是数据交换格式;所谓“运行”,实际指格式化、语法校验、结构验证(Schema)、或在外部环境(如 Node.js)中解析它。
为什么 Shift+Alt+F 按了没反应?
格式化失效几乎总是因为 VSCode 没把当前文件当 JSON 处理:
- 右下角状态栏显示的是
Plain Text或JSONC,而不是JSON—— 点击它,输入json回车切换 - 文件没有
.json扩展名(比如叫config或data),需手动关联:Ctrl+K M→ 输入json - 内容本身非法:含单引号、尾随逗号、
//注释、未转义换行符——这些在JSON模式下会直接阻断格式化,改用JSONC模式可绕过(但导出前必须切回并清理) -
"json.format.enable": true被意外设为false(极少发生,默认开启)
怎么让错误立刻标红?
VSCode 的语法校验是静默启用的,但只在 JSON 模式下生效,且不依赖插件:
- 确认语言模式是
JSON(不是JSONC),否则注释、尾随逗号等不会报错 - 检查设置:
"json.validate.enable": true(默认开启,可在settings.json中确认) - 错误提示如
Unexpected token }或Invalid character直接对应光标位置,Problems 面板会汇总 - 若整段变灰/无高亮,可能是 BOM 字符(
\uFEFF)或编码问题:用File > Save with Encoding > UTF-8重存
怎么绑定 Schema 实现字段补全和结构约束?
这才是真正让 JSON “活起来”的一步——但极易因路径或模式错配而完全静音:
- 在 JSON 文件顶部加
"$schema"字段,值必须是合法 URI:"$schema": "file:///path/to/schema.json"(绝对路径!相对路径大概率失败) - 或在项目
.vscode/settings.json中配置:"json.schemas",fileMatch必须精确匹配文件路径(支持通配符,如"configs/*.json") - 本地 Schema 文件本身必须语法合法(可用
jsonschemalint.com验证),否则 VSCode 会静默忽略,不报任何提示 - 编辑
.schema.json文件时,VSCode 默认不提供 Schema 关键字补全,需手动切语言模式为JSON Schema,或加注释触发:// @schema: https://json-schema.org/draft-07/schema#
想在终端里真正“运行” JSON 怎么办?
VSCode 本身不执行 JSON,但你可以用脚本加载它:
- 写一个
parse.js:const fs = require('fs'); const data = JSON.parse(fs.readFileSync('./config.json', 'utf8')); console.log(data); - 终端执行:
node parse.js—— 此时才是真正的 JSON 解析,错误信息(如SyntaxError: Unexpected token)来自 V8 引擎,比 VSCode 校验更底层 - 注意:大 JSON(>5MB)可能触发内存限制;数字超出
Number.MAX_SAFE_INTEGER(9007199254740991)时会被 JS 自动转成不精确值,VSCode 不校验这类语义问题
最常被忽略的不是配置多难写,而是三件事:语言模式没切对、$schema 路径写错、Schema 文件本身有语法错误——这三处任一出问题,整个验证链就断了,且 VSCode 不会告诉你哪里断的。


















