jQuery parseJSON对象问题
我最近在玩jQuery的parseJSON和simplejson,但我搞不清楚为什么我的变量无法打印或比较。
我知道我的Python返回语句是正确的,因为如果不正确,jQuery.ajax就会返回false,然后会执行“错误”代码。所以我不太确定我在jQuery上做错了什么。
这是我尝试使用的代码:
Python/Django的返回语句...
return HttpResponse(json.dumps({'result': True}), mimetype='application/json')
jQuery/javascript...(.ajax函数...我只保留了好的部分)
success: function(data, textStatus, jqXHR) {
jQuery(".signup").attr('disabled', false);
//parse return data
var obj = jQuery.parseJSON(data);
if(obj.result == true){
//$('.signup-area .heading').hide();
//$('#signup').hide();
$('.success').show().append(obj.result);
}
else{
$('.signup-area .heading').hide();
$('#signup').hide();
$('.success').show().append('in the else');
}
},
error: function(jqXHR, textStatus, errorThrown) {
jQuery(".signup").attr('disabled', false);
$('.fail').show().append(errorThrown);
}
相关问题:
2 个回答
1
我最近遇到了这个问题,原因是我在我的JSON中使用了单引号,而parseJSON认为这样是不合法的。
$.parseJSON("{'key':'value'}")
Invalid JSON: {'key':'value'}
$.parseJSON('{"key":"value"}')
Object
我发现这个问题的方法是从Chrome的JS控制台调用parseJSON。然后我通过在JSONLint上检查我的JSON来确认这是问题所在。
1
据我所知,jQuery的ajax函数有一个叫做'dataType'的参数,你可以把它设置为'json',这样jQuery就会自动把数据解析成JSON格式。这样的话,你就不需要再调用parseJson来处理响应数据了。
就像这样:
jQuery.ajax({
url:url,
dataType:'json',
success:function(data){
//这里的data已经是JSON格式了,所以不需要再解析一次。
},
error:function(){}
});
希望这对你有帮助。