JSON 错误大全

最全面的JSON错误解决方案,覆盖所有常见错误类型。每种错误都包含原因分析、错误示例、正确写法和一键修复方法。

遇到JSON错误?试试一键修复

自动识别并修复所有常见JSON错误

立即修复

Unexpected token 意外标记错误

Unexpected token意外标记语法错误

最常见的JSON错误,表示JSON解析器遇到了不符合语法的字符。

常见原因

  • 使用了单引号而非双引号
  • 属性名未加引号
  • 多余的逗号
  • 缺少逗号
  • 使用了注释
  • 特殊字符未转义

错误示例与正确写法

❌ 错误
{'name': 'test'}
✅ 正确
{"name": "test"}
❌ 错误
{name: "test"}
✅ 正确
{"name": "test"}
❌ 错误
{"items": [1, 2, 3,]}
✅ 正确
{"items": [1, 2, 3]}

解决方案

使用本工具的一键修复功能,或手动检查引号和逗号位置。

Trailing comma 多余逗号错误

Trailing comma多余逗号末尾逗号

对象或数组的最后一个元素后面有逗号,这在标准JSON中是不允许的。

常见原因

  • 对象最后一个属性后有逗号
  • 数组最后一个元素后有逗号
  • 从JavaScript对象直接复制
  • 编辑器自动添加逗号

错误示例与正确写法

❌ 错误
{
  "name": "test",
  "age": 18,
}
✅ 正确
{
  "name": "test",
  "age": 18
}
❌ 错误
[1, 2, 3,]
✅ 正确
[1, 2, 3]

解决方案

删除最后一个元素后的逗号,或使用一键修复自动处理。

Unquoted keys 属性名未加引号

Unquoted keys属性名无引号key未加引号

JSON属性名(key)必须用双引号包裹,这是与JavaScript对象的重要区别。

常见原因

  • 习惯了JavaScript对象写法
  • 从代码中直接复制对象字面量
  • 手写JSON时遗漏引号

错误示例与正确写法

❌ 错误
{name: "张三", age: 25}
✅ 正确
{"name": "张三", "age": 25}
❌ 错误
{user-name: "test"}
✅ 正确
{"user-name": "test"}

解决方案

为所有属性名添加双引号,或使用一键修复自动添加。

Single quotes 使用单引号

Single quotes单引号错误使用了单引号

JSON标准只允许使用双引号,单引号会导致解析失败。

常见原因

  • 习惯使用单引号的编程风格
  • 从其他语言复制字符串
  • 混淆JSON和JavaScript语法

错误示例与正确写法

❌ 错误
{'name': 'test'}
✅ 正确
{"name": "test"}
❌ 错误
{"msg": 'hello'}
✅ 正确
{"msg": "hello"}

解决方案

将所有单引号替换为双引号,注意转义内部的双引号。

Missing comma 缺少逗号

Missing comma缺少逗号Expected comma

对象属性之间或数组元素之间缺少逗号分隔符。

常见原因

  • 手写JSON时遗漏
  • 复制粘贴时丢失
  • 格式化时误删

错误示例与正确写法

❌ 错误
{"a": 1 "b": 2}
✅ 正确
{"a": 1, "b": 2}
❌ 错误
[1 2 3]
✅ 正确
[1, 2, 3]

解决方案

在属性和元素之间添加逗号。

Invalid number 无效数字格式

Invalid number数字格式错误NaNInfinity

JSON不支持某些数字格式,如前导零、NaN、Infinity等。

常见原因

  • 数字有前导零(如007)
  • 使用了NaN或Infinity
  • 十六进制数字
  • 数字格式不规范

错误示例与正确写法

❌ 错误
{"price": 007.50}
✅ 正确
{"price": 7.50}
❌ 错误
{"value": NaN}
✅ 正确
{"value": null}
❌ 错误
{"value": Infinity}
✅ 正确
{"value": null}

解决方案

修正数字格式,用null或字符串代替特殊数值。

Invalid string escape 无效转义字符

Invalid escape转义错误反斜杠错误

JSON字符串中使用了无效的转义序列。

常见原因

  • 使用了JSON不支持的转义符
  • 反斜杠未正确转义
  • 路径字符串处理不当
  • 正则表达式未正确转义

错误示例与正确写法

❌ 错误
{"path": "C:\Users"}
✅ 正确
{"path": "C:\\Users"}
❌ 错误
{"text": "Line1\nLine2"}
✅ 正确
{"text": "Line1\\nLine2"}

解决方案

确保转义序列有效,或在JSON中正确处理特殊字符。

Unclosed string 字符串未闭合

Unclosed string字符串未关闭引号不匹配

字符串缺少闭合的引号,通常是因为字符串内容中包含未转义的引号。

常见原因

  • 字符串中包含双引号未转义
  • 忘记闭合引号
  • 复制粘贴时截断

错误示例与正确写法

❌ 错误
{"msg": "He said "hello""}
✅ 正确
{"msg": "He said \"hello\""}
❌ 错误
{"text": "unclosed}
✅ 正确
{"text": "unclosed"}

解决方案

转义字符串内的双引号,确保所有字符串正确闭合。

Missing bracket 括号不匹配

Missing bracket括号缺失结构不完整

JSON对象或数组的括号不匹配,缺少闭合的大括号或中括号。

常见原因

  • 忘记闭合括号
  • 嵌套层级过多时遗漏
  • 复制粘贴不完整

错误示例与正确写法

❌ 错误
{"user": {"name": "test"}
✅ 正确
{"user": {"name": "test"}}
❌ 错误
[1, [2, 3]
✅ 正确
[1, [2, 3]]

解决方案

检查括号匹配,确保每个{对应一个},每个[对应一个]。

JSON comments 使用注释

JSON commentsJSON注释不支持注释

标准JSON不支持注释,添加注释会导致解析失败。

常见原因

  • 习惯在其他语言中使用注释
  • 想在JSON中添加说明
  • 临时注释某些字段

错误示例与正确写法

❌ 错误
{
  // 用户名
  "name": "test"
}
✅ 正确
{
  "name": "test"
}
❌ 错误
{
  /* 用户信息 */
  "name": "test"
}
✅ 正确
{
  "name": "test"
}

解决方案

删除所有注释,或将说明放在属性值中。

Control characters 控制字符错误

Control characters控制字符特殊字符

JSON字符串中包含未转义的控制字符(如换行符、制表符等)。

常见原因

  • 从文本直接复制包含换行
  • 数据库字段中有特殊字符
  • API返回包含格式化字符

错误示例与正确写法

❌ 错误
{"text": "line1
line2"}
✅ 正确
{"text": "line1\nline2"}
❌ 错误
{"text": "col1	col2"}
✅ 正确
{"text": "col1\tcol2"}

解决方案

将控制字符转换为对应的转义序列。

Duplicate keys 重复的键

Duplicate keys重复键key重复

JSON对象中存在重复的属性名,虽然合法但可能导致问题。

常见原因

  • 手写时疏忽重复
  • 合并多个对象时产生
  • 自动生成时未去重

错误示例与正确写法

❌ 错误
{"name": "张三", "name": "李四"}
✅ 正确
{"name": "张三", "nickname": "李四"}

解决方案

重命名重复的属性,确保每个key唯一。

JSON错误常见问题

JSON.parse() 报错怎么办?

使用本工具粘贴JSON内容,会自动检测错误位置并提供修复建议,或使用一键修复功能自动修复。

JSON格式化后还是报错?

可能是JSON内容本身有语法错误,请检查引号、逗号、括号等是否符合JSON规范,或使用一键修复。

如何避免JSON错误?

始终使用双引号、不要添加注释、注意逗号位置、转义特殊字符,建议使用JSON编辑器工具。

JSON和JavaScript对象有什么区别?

JSON属性名必须用双引号,不能有注释,不能有尾部逗号,只支持基本数据类型。

在线JSON修复工具

粘贴JSON内容,一键自动修复所有语法错误

打开工具