Jquery 将Python对象序列化为JSON,但其函数在javascript中不起作用

Jquery 将Python对象序列化为JSON,但其函数在javascript中不起作用,jquery,python,django,json,django-models,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] 但似乎不可能从这些对象调用任何参数或函数。我试过这个: for (x i

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

data = serializers.serialize('json', ExampleModel.objects.all())
return HttpResponse(data, 'application/json')
我可以在javascript端获得如下对象集合:[object object][object] 但似乎不可能从这些对象调用任何参数或函数。我试过这个:

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

我只是得到了几个“未定义”的结果。有人能解释为什么吗?谢谢。

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

因为您正在访问未定义的
参数
。以伊尔瓦尔为例,

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”
对象
都没有
参数
属性

请尝试
console.log(数据)
console.log(x)
并在此处显示一些结果,以便我们可以查看对象的结构。
console.dir
可能会为您提供更有用的内容。非常感谢您的回答!我现在可以从返回的对象中检索值。还有一件事:我没有在这些JS对象中找到Django模型中的函数。是否可以在JSON中传递它们?自动-否。但是您可以在Python中构造任何结构,并通过
simplejson.dumps()
接收您需要的任何数据。您可以通过批准和/或对我们的一个或多个答案进行投票来表示“感谢:)感谢您提供的信息!我现在可以从模型中检索属性了。还有一件事:在将模型中定义的函数传递给javascript之后,我仍然找不到它们。json只包含来自服务器端模型实例的数据,需要客户端javascript函数对数据进行操作。