jQuery parseJSON объект вопрос / проблема - PullRequest
1 голос
/ 23 июня 2011

Я играл с jQuery parseJSON и simplejson, и я не могу понять, почему я не могу заставить свои переменные печатать или сравнивать.

Я знаю, что мой оператор возврата Pythonправильно, потому что, если это не так, jQuery.ajax вернет false и код ошибки будет запущен.Так что я не уверен, что я делаю неправильно с jQuery

Вот код, который я пытаюсь использовать:

Pythong / Django return return ...

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 голос
/ 23 июня 2011

Насколько я знаю, ajax-функция jQuery принимает параметр 'dataType', который можно указать как 'json', чтобы jQuery автоматически анализировал данные. В этом случае вам не нужно вызывать parseJson, чтобы получить ответ как json.

Что-то вроде

jQuery.ajax ({
URL: URL,
DATATYPE: 'JSON' ,
успех: функция (данные) {
// данные будут в формате json, поэтому нет необходимости анализировать их снова.
},
Ошибка: функция () {}
});

Надеюсь, это поможет.

1 голос
/ 23 июня 2011

У меня недавно была эта проблема, потому что я использовал одинарные кавычки в моем JSON, который parseJSON считает недействительным.

$.parseJSON("{'key':'value'}")
Invalid JSON: {'key':'value'}
$.parseJSON('{"key":"value"}')
Object

Я понял это, вызвав parseJSON из окна консоли JS в chrome. Затем я убедился, что это проблема, запустив JSON через JSONLint

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...