【问题标题】:JSON parsing error in jQueryjQuery中的JSON解析错误
【发布时间】:2014-01-22 14:40:00
【问题描述】:

我正在开发一个在后端使用 Pylons 的内部网络应用程序,我发现自己需要帮助找出为什么会出现 JSON 解析错误。

服务器上的 Python 例程实际上是这样的:

导入json # 此处导入其他 Pylons # 剪... def validateMachine(自我): retObj = {} retObj['ipv4addr'] = '10.10.15.9' retObj['netmask'] = '255.255.255.0' 返回 json.dumps(retObj)

客户端有如下jQuery代码:

$.ajax({ 类型:“发布”, url: "/kickstart/validateMachine", 数据:{theData:theValue}, 数据类型:“json” }) .done(函数(数据){ retObj = $.parseJSON(data); #其他代码在这里 });

当我执行 AJAX 查询时,服务器例程正确返回,但对 $.parseJSON() 的调用出错。 Firebug 控制台出错后的屏幕截图:

响应似乎是有效的严格 JSON,所以我的问题有两个:为什么它不能正确解析,我怎样才能让它解析?我的理解是 jQuery 在这种情况下(正确地)尝试使用浏览器的原生 JSON 解析器 - 我可以以某种方式覆盖它并告诉 jQuery 不要使用原生解析器吗?

【问题讨论】:

  • 恕我直言,将预期的dataType设置为JSON时,您不需要手动解析,数据已经是JSON。你检查过typeof data吗?
  • 当您指定json 时,jQuery 会自动为您解析响应。所以data已经是原生js对象,在js对象上调用parseJSON会报错。

标签: jquery ajax json


【解决方案1】:

您不能在已经是 json 对象的对象上解析 JSON,根据您的图像看到数据已经是 JSON

{"netmask": "255.255.255.0", "ipv4addr": "10.10.15.9"}

这样就够了

retObj = data;

【讨论】:

  • 是的,那是我的错误。感谢您的帮助。
猜你喜欢
  • 2014-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-11
  • 1970-01-01
  • 2012-10-13
相关资源
最近更新 更多