2014-01-22 39 views
2

我正在研究一个在后端使用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 error console

的反应似乎是有效的严格JSON,所以我的问题是双重的:它为什么不能正确解析,我怎样才能得到它这样做?这是我的理解,在这种情况下,jQuery是(正确)尝试使用浏览器的本机JSON解析器 - 我可以以某种方式覆盖它并告诉jQuery不使用本机解析器吗?

+0

恕我直言,当将预期的dataType设置为JSON,不需要手动解析,数据已经是JSON。你有没有检查'typeof数据'? – martinczerwi

+0

当你指定'json'时,jQuery会自动为你解析响应。因此,'data'已经是一个原生的js对象,并且在js对象上调用'parseJSON'会导致错误。 –

回答

2

可以在对象已经是一个JSON对象,看到这些数据已经按照您的图像JSON上不parseJSON

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

所以这应该是足够

retObj = data; 
+1

是的,那是我的错误。谢谢您的帮助。 – John