You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSCode中Prettier格式化JSON报错:';' expected的解决求助

解决Prettier格式化JSON报错及切换到VSCode原生格式化的方法

问题原因分析

你的报错';' expected完全是配置冲突导致的:你的.prettierrc里强制指定了parser: "typescript",但TypeScript解析器会把JSON文件当成TS代码来解析——JSON里的键是带双引号的(比如"Requester"),而TS中对象的标识符键不需要引号,所以解析器会在双引号位置期待分号或其他TS语法,直接抛出错误。


一、修复Prettier格式化JSON的问题

你有两种方式调整配置,让Prettier正确处理JSON文件:

1. 修改全局Prettier配置(推荐)

直接去掉.prettierrc里的parser字段,让Prettier自动根据文件后缀选择对应的解析器:

{
  "useTabs": false,
  "tabWidth": 2,
  "printWidth": 120,
  "trailingComma": "none",
  "singleQuote": true,
  "bracketSpacing": true,
  "jsxBracketSameLine": false,
  "arrowParens": "always",
  "endOfLine": "auto",
  "htmlWhitespaceSensitivity": "css",
  "insertPragma": false,
  "jsxSingleQuote": false,
  "proseWrap": "preserve",
  "quoteProps": "as-needed",
  "requirePragma": false,
  "semi": true
}

2. 针对JSON文件单独配置解析器

如果你需要保留TS相关的全局配置,只想让JSON文件用正确的解析器,可以在VSCode的settings.json中添加:

"[json]": {
  "prettier.parser": "json"
}

修改完配置后,重新打开你的JSON文件,执行格式化(Ctrl+Shift+I或Cmd+Shift+I),应该就能正常工作了。


二、禁用Prettier,改用VSCode原生JSON格式化

如果你不想继续使用Prettier,有几种方式切换到VSCode原生的JSON语言特性格式化:

1. 仅对JSON文件禁用Prettier

打开VSCode的settings.json,设置JSON文件的默认格式化器为VSCode原生工具:

"[json]": {
  "editor.defaultFormatter": "vscode.json-language-features"
}

2. 完全禁用Prettier扩展

  • 打开VSCode的扩展面板(Ctrl+Shift+X或Cmd+Shift+X)
  • 找到Prettier - Code formatter扩展
  • 点击右下角的「禁用」按钮(可以选择禁用全局或仅当前工作区)

3. 让Prettier忽略JSON文件

在项目根目录创建.prettierignore文件,添加JSON文件的匹配规则:

*.json

内容的提问来源于stack exchange,提问作者Manny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 08:42:28