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

使用jQuery解析menu.json遇Uncaught SyntaxError错误求助

问题原因与解决方案

这个报错的核心原因是你重复解析了JSON,还搞错了要处理的对象,咱们一步步拆解清楚:

  1. 首先,$.getJSON方法本身就会自动把服务器返回的JSON字符串解析成JavaScript对象,完全不需要再手动调用$.parseJSON()。
  2. 你代码里的res是jQuery的jqXHR请求对象,不是返回的JSON数据。真正解析好的业务数据是在done回调的参数里,而不是res本身。

你写的代码里,试图对jqXHR对象调用$.parseJSON(),这就相当于把一个JS对象当成JSON字符串去解析——JS对象转成字符串是[object Object],开头的o就是报错里说的"Unexpected token o",自然会触发语法错误。

修正后的代码

把代码改成这样就能正常运行了:

$.getJSON("menu.json")
  .done(function(data) {
    // data已经是解析好的JS对象,直接用就行
    console.log(data.name); // 会输出"John"
  })
  .fail(function(err) {
    // 可以加个失败回调,方便后续排查问题
    console.error("加载或解析失败:", err);
  });

额外补充

  • 如果你非要手动解析(其实完全没必要),那得拿到请求返回的原始字符串,比如通过res.responseText,但这属于多此一举,因为$.getJSON已经帮你完成了解析工作。
  • 网络面板能看到JSON加载成功,说明请求链路是没问题的,问题完全出在客户端对返回数据的处理逻辑上。

内容的提问来源于stack exchange,提问作者djames

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:18:28