我正在研究一个在后端使用Pylons的内部网络应用程序,并且我发现自己需要帮助来弄清楚为什么我会收到JSON解析错误。JSON中的JSON解析错误
在服务器上的Python程序实际上是这样的:
import json # Other Pylons imports here # Snip... def validateMachine(self): retObj = {} retObj['ipv4addr'] = '10.10.15.9' retObj['netmask'] = '255.255.255.0' return json.dumps(retObj)
该客户端具有以下jQuery代码:
$.ajax({ type: "POST", url: "/kickstart/validateMachine", data: {theData: theValue}, dataType: "json" }) .done(function(data) { retObj = $.parseJSON(data); #Other code here });
当我执行AJAX查询,服务器例程返回正确,但是调用$ .parseJSON()时出错了。 Firebug控制台的屏幕截图后,它出错了:
的反应似乎是有效的严格JSON,所以我的问题是双重的:它为什么不能正确解析,我怎样才能得到它这样做?这是我的理解,在这种情况下,jQuery是(正确)尝试使用浏览器的本机JSON解析器 - 我可以以某种方式覆盖它并告诉jQuery不使用本机解析器吗?
恕我直言,当将预期的dataType设置为JSON,不需要手动解析,数据已经是JSON。你有没有检查'typeof数据'? – martinczerwi
当你指定'json'时,jQuery会自动为你解析响应。因此,'data'已经是一个原生的js对象,并且在js对象上调用'parseJSON'会导致错误。 –