jQuery parseJSON对象的问题/问题

时间:2011-06-23 16:04:10

标签: jquery python json

我一直在玩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);
        }

2 个答案:

答案 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格式,因此无需再次解析。
},
错误:函数(){}
});

我希望这会有所帮助。