JSON 文件里加了注释,程序为什么读不了?
标准 JSON 从规范上就不允许注释,能读注释的是它的扩展方言。
直接答案
标准 JSON 的规范里没有注释这个语法,任何严格解析器遇到注释都会立刻报错,这不是程序坏了。
JSON5 与 JSONC 是放宽了注释、尾逗号、单引号键等限制的超集方言,需要解析器或运行环境显式支持才能读。
常见编辑器配置文件用的是 JSONC 方言;要把这类文件交给严格的运行时,得先去掉注释或换成支持方言的解析器。
想在配置文件里给字段写两行说明,一保存运行就报错,删掉注释又好了,感觉像玄学。
其实规范白纸黑字:标准 JSON 没有注释。这篇把方言和标准的边界、怎么选解析器讲清楚。
1标准 JSON 与方言差在哪
同一个文件能不能读,取决于解析器按哪套规范来。
| 写法 | 标准 JSON | JSON5 / JSONC |
|---|---|---|
| 双斜线注释 | 不允许,直接报错 | 允许 |
| 块注释 | 不允许 | 允许(JSON5) |
| 尾逗号 | 不允许 | 允许 |
| 单引号与无引号键 | 不允许 | 允许(JSON5) |
| 十六进制数字 | 不允许 | 允许(JSON5) |
文件后缀不能改变内容规范,改名叫 .json 的 JSONC 照样会被严格解析器拒绝。
2报错信息怎么对号入座
严格解析器的报错行号就停在第一个非法字符上,照着对即可。
- 报错停在注释行
- 解析器不支持注释
- 报错停在逗号后
- 尾逗号不被标准允许
- 报错提到意外的单引号
- 键或值用了单引号
- 报错提到非法字符开头
- 文件带了字节顺序标记
先用校验工具确认文件按哪套规范合法,再决定改文件还是换解析器。
3三种处理路径按场景选
注释要保留还是去掉,决定了走哪条路。
- 注释必须留
- 继续用支持方言的环境读它
- 交给严格运行时
- 先跑一遍去注释再交付
- 文档要给人看
- 另存一份带注释的源稿
去注释不等于逐行删斜线,字符串里合法出现的斜线不能动,交给工具处理最稳妥。
顺着这个问题往下用
全部工具总览 →相关疑问
为什么有些工具能读带注释的 JSON?
它们内置的是 JSON5 或 JSONC 方言解析器,不是标准解析器,能力来自方言而不是规范。
把注释删干净就一定合法吗?
不一定,尾逗号、单引号、无引号键同样会被严格解析器拒绝,最好用校验工具整体过一遍。
配置文件该用 .json 还是 .jsonc 后缀?
按运行环境的约定来:支持方言的环境用 .jsonc 更诚实,只认标准 JSON 的环境后缀没意义,内容合法才行。
字符串里包含双斜线会被当成注释删掉吗?
不会,合格的去注释工具会识别字符串边界,只处理真正的注释语法。
继续看:相关问题与资料
全部问题解答 →
内容标识:本页内容由人工智能辅助生成,并经人工核对与编辑。详见 人工智能生成内容标识说明。
内容说明:本页针对具体使用问题作答,方法步骤与数值由本站自行整理与复算,事实性内容以对应官方规范与文档为准。内容最后核对日期:2026-10-21。若发现错误,欢迎通过页脚反馈入口告知。
内容说明:本页针对具体使用问题作答,方法步骤与数值由本站自行整理与复算,事实性内容以对应官方规范与文档为准。内容最后核对日期:2026-10-21。若发现错误,欢迎通过页脚反馈入口告知。
速查在线工具箱