我一直在玩jQuery的parseJSON和simplejson,我似乎无法弄清楚为什么我无法将我的变量打印或比较。
我知道我的Python返回语句是正确的,因为如果不是jQuery.ajax将返回false并且“错误”代码将运行。所以我不确定我在使用jQuery做错了什么
这是我正在尝试使用的代码:
Pythong / 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);
}
答案 0 :(得分:1)
我最近遇到了这个问题,因为我在我的JSON中使用单引号,而parseJSON认为它是无效的。
$.parseJSON("{'key':'value'}")
Invalid JSON: {'key':'value'}
$.parseJSON('{"key":"value"}')
Object
我想出来的方法是从chrome中的JS控制台窗口调用parseJSON。然后我通过JSONLint
运行我的JSON来验证这是问题答案 1 :(得分:1)
据我所知,jQuery ajax函数采用的是'dataType'参数,您可以指定'json',以便jQuery自动解析数据。在这种情况下,您不必调用parseJson以获得响应为json。
像
这样的东西 jQuery.ajax({
网址:网址,
的数据类型: 'JSON'下,
成功:功能(数据){
//数据将采用json格式,因此无需再次解析。
},
错误:函数(){}
});
我希望这会有所帮助。