Сериализованный объект Python в JSON, но его функция не работает в JavaScript - PullRequest
0 голосов
/ 31 марта 2012

Я пытаюсь использовать .get () в jQuery для отправки запроса на сервер и возврата объекта python с использованием фреймворка Django Используя

data = serializers.serialize('json', ExampleModel.objects.all())
return HttpResponse(data, 'application/json')

Я могу получить коллекцию объектов в конце JavaScript следующим образом: [объект объекта] [объект объекта] Но кажется невозможным вызывать какие-либо параметры или функции из этих объектов. Я пробовал это:

for (x in data){
    alert(data[x].parameter);
}

Я просто получил несколько неопределенных результатов. Кто-нибудь может объяснить, почему? Спасибо.

Ответы [ 2 ]

0 голосов
/ 31 марта 2012

Поскольку вы обращались к неопределенному parameter.Возьмите пример Ильвара,

eval('data='+"{'id': 123, 'model': 'app.Model', fields:{'name': 'blah', 'active': true}}")
for (var x in data){
    console.info(x, '=>', data[x])
}
// will outputs
id => 123
model => app.Model
fields => Object

Ни один из 123, "app.Model" или Object не имеет parameter свойства

0 голосов
/ 31 марта 2012

Сериализатор JSON Django помещает каждый объект в сложную структуру, такую ​​как {'id': 123, 'model': 'app.Model', fields:{'name': 'blah', 'active': true}}, поэтому вам нужно правильно получать значения в JS.Вы можете использовать Firebug для Firefox или Web Inspector для Chrome, чтобы установить точку останова внутри вашего обратного вызова и проанализировать полученные данные.

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