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

网站JavaScript中JSON.parse语法错误排查求助

搞定JSON.parse语法错误的常见思路

Hey there! 作为天天跟JSON打交道的开发者,我太懂新手遇到JSON.parse报错时的崩溃感了😅 别着急,咱们一步步捋清楚最常见的几个坑,你可以对照着排查:

  • JSON格式本身不符合规范
    JSON的规则比JavaScript对象严格多了,新手最容易踩这几个点:

    • 属性名必须用双引号包裹,单引号或者不加引号都不行:
      ❌ 错误写法:{'name': 'Alice'} 或者 {name: 'Alice'}
      ✅ 正确写法:{"name": "Alice"}
    • 最后一个属性后面不能加逗号(trailing comma):
      ❌ 错误写法:{"name": "Alice", "age": 30,}
      ✅ 正确写法:{"name": "Alice", "age": 30}
    • 字符串里的特殊字符要转义:比如双引号、反斜杠,得加\转义:
      ❌ 错误写法:{"desc": "She said "Hi!" to me"}
      ✅ 正确写法:{"desc": "She said \"Hi!\" to me"}
  • 传入的不是有效的JSON字符串
    JSON.parse()只能接收字符串,如果传了对象、undefined、null或者其他类型,直接就会报错。比如你不小心写了JSON.parse(userObject)而不是JSON.parse(JSON.stringify(userObject)),肯定炸。另外还要注意:如果是后端接口返回的数据,说不定返回的不是JSON(比如返回了404的HTML页面),这时候你把HTML字符串传给parse,自然会报错。

  • 隐藏的特殊字符或编码问题
    有时候你复制的JSON字符串里会有看不见的特殊字符(比如BOM头\uFEFF),或者编码不对,这时候parse也会失败。可以先把字符串打印到控制台,看看有没有奇怪的字符,或者用jsonString.replace(/^\uFEFF/, '')去掉BOM头再试试。

新手调试小技巧

给你个实用的调试代码,用try-catch包裹parse,能直接看到具体错误信息和出问题的字符串:

const yourJsonString = "这里放你要解析的字符串";
try {
  const parsedData = JSON.parse(yourJsonString);
  console.log("解析成功:", parsedData);
} catch (error) {
  console.error("解析错误原因:", error.message);
  console.error("出问题的原始字符串:", yourJsonString);
}

错误信息会告诉你具体哪里错了,比如Unexpected token ' in JSON at position 1,直接就能定位是单引号的问题。

慢慢来,新手遇到这种问题太正常了,排查几次就熟练啦!

内容的提问来源于stack exchange,提问作者T.P

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:37:45