修复 JSON 解析错误:Expected Property Name
这个错误通常意味着解析器遇到了一个不符合 JSON 规范的对象键:未加引号的键、注释、尾随逗号,或严格 JSON 中混入了 JavaScript 语法。
这个错误是什么意思
JSON 对象成员必须以一个带双引号的属性名开头。当解析器报 expected property name 或 expected property name or '}' 时,它通常正站在一个开头的 { 或一个 , 之后,等着读一个像 "name" 这样的键。如果它看到的是 name、// 注释、/* 注释 */,或者一个 } 紧跟在尾随逗号之后,就会停下来 —— 这些都是 JavaScript 的写法,不是严格 JSON。
最常见的原因
排查这个错误最快的方法是看报告的行列位置上的字符,再回看前一个 token。大多数情况都是四种小错误之一。
- 未加引号的对象键,例如 { name: "Ada" }
- 单引号的键或字符串,例如 { 'name': 'Ada' }
- 从 JavaScript 或 JSONC 文件复制过来的注释
- } 或 ] 之前的尾随逗号
出错示例
{ name: 'Ada', active: true, // copied from a JS object }
修复后的 JSON
{ "name": "Ada", "active": true }
修复清单
给每个键加双引号,把单引号字符串换成双引号字符串,删掉注释,去掉末尾逗号,并确保布尔值和 null 是小写。修完之后,在把这个值存到配置、发出 API 或粘贴到数据库迁移脚本之前,先跑一次严格校验。
自动修复何时是安全的
如果意图清晰,自动修复只做语法清理是安全的。不要把它当业务校验。如果某个键名、数字、日期或枚举可能有歧义,先修语法,然后再把结果与源系统或 API schema 做对比。
JSON 修复指南
主题中心
- JSON Parse Errors: Read the Message, Jump to the Fix
- Fix Invalid JSON: From 'What's Wrong' to a Clean File
- JSON Formatter, Validator, Viewer: Pick the Right Tool
- Repair LLM JSON Output: Handling Almost-JSON from AI
- Privacy: JSON Tools That Don't Leave Your Browser
- JSON Interop: YAML, CSV, XML, JWT, Schema
具体指南
- 如何解码 Base64 字符串(以及 JWT Payload)
- URL 编码:百分号编码查询参数与路径
- 将 YAML 转为 JSON(并避免缩进错误)
- 将 JSON 转为 CSV:把对象数组扁平化
- 将 JSON 转为 XML:根元素、属性与数组
- 将 JSON 转义为字符串字面量(并解码双重编码的 JSON)
- 修复 JSON 中的尾随逗号
- 修复 JSON 中的单引号
- 修复 JSON 中未加引号的键
- 修复 LLM 输出的 JSON
- JSON 与 JavaScript 对象字面量的区别
- 在发起 API 请求前校验 JSON
- JSON 格式化器 vs JSON 修复工具
- 修复 JSON Unexpected Token 错误
- JSON 转 JavaScript 对象转换器