序列化的Python对象为JSON,但其功能不适用于javascript

时间:2012-03-30 21:46:32

标签: jquery python django json django-models

我正在尝试在jQuery中使用.get()向服务器发送请求并使用Django框架返回python对象。 使用

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

我可以在javascript端得到一个对象集合,如下所示:[object Object] [object Object] 但是从这些对象调用任何参数或函数似乎是不可能的。我试过这个:

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

结果我得到了几个“未定义”。谁能解释为什么?感谢。

2 个答案:

答案 0 :(得分:0)

Django的JSON序列化程序将每个对象放在像{'id': 123, 'model': 'app.Model', fields:{'name': 'blah', 'active': true}}这样的复杂结构中,因此您需要在JS中正确检索值。您可以使用Firebug for Firefox或Web Inspector for Chrome在回调中设置断点并内省接收到的数据。

答案 1 :(得分:0)

因为您正在访问未定义的parameter。以ilvar为例,

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属性