VSCode中Prettier无法格式化React项目的schema.json并报语法错误
问题核心原因
该报错本质是schema.json本身存在JSON语法错误,Prettier需要先完成JSON语法解析才能执行格式化,解析失败自然会抛出格式化错误,和Prettier本身的配置、功能无关。
报错提示的1867:281代表错误出现在第1867行、第281列的位置,结合给出的代码片段,问题出在该行description字段的字符串内容里包含了未转义的双引号,导致JSON解析器提前判定字符串闭合,后续内容不符合JSON语法规则。
解决步骤
- 手动定位并修正语法错误
打开schema.json文件跳转到1867行,找到第281列附近的内容,也就是description字段里(such as "4")这段。JSON规范要求字符串内部的双引号必须做转义处理,把内容里所有未转义的双引号"替换为转义格式\"即可:- 错误写法:
"description": "TheIDscalar type ... any string (such as "4") ..." - 正确写法:
"description": "TheIDscalar type ... any string (such as \"4\") ..."
- 错误写法:
- 批量排查所有同类语法错误
为了避免改完一个错误后还有下一个同类问题,可以用以下方式快速找出所有语法问题:- 直接查看VSCode左下角的「问题」面板,编辑器原生JSON校验会直接标注所有语法错误的行号和原因
- 在项目根目录执行
npx jsonlint schema.json,会逐行输出所有JSON语法错误的位置
- 验证格式化功能
所有语法错误修正完成后,重新触发Prettier格式化即可正常执行。
补充提示
如果这个schema.json是GraphQL introspection的导出文件,导出时需要开启自动转义字符串的参数,避免后续导出的JSON再出现同类转义遗漏问题。
内容的提问来源于stack exchange,提问作者NeERAJ TK
相关产品推荐
相关产品推荐

