我从我的django代码JSON返回,它看起来像这样:
我的django代码:
objs = AccessInfo.objects.filter(~Q(weblink=''))
return HttpResponse(serializers.serialize('json', objs), mimetype="application/json")
我在前端得到的是:
我希望能够使用javascript迭代前端中的那些JSON对象,并在某些html中显示每个fields
值。
如果我alert(data)
,我会收到[ Object, Object ]
。
我试过了$.parseJSON(data)
,但我得到了:
SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data
我该怎么办?
更新:
我的js正在接收这样的数据:
$.ajax({
url: '/get_book_access_downloads/',
type: 'get',
data: {bookid:bookid},
dataType: 'json'
}).done(function(data){
// to do
});
答案 0 :(得分:3)
您的数据已经解析。你有一个JavaScript对象列表,不需要再次解析它。
当您在dataType: 'json'
电话上使用$.ajax()
时,您使用jQuery加载数据,jQuery 为您解析JSON响应;如果你省略了那个参数,jQuery会以他们的mime类型自动检测JSON响应,然后为你解码。
dataType
选项见jQuery.ajax()
documentation:
您期望从服务器返回的数据类型。如果没有指定,jQuery将尝试根据响应的MIME类型推断它(XML MIME类型将产生XML,在1.4 JSON中将产生一个JavaScript对象,在1.4脚本中将执行脚本,其他任何东西将是以字符串形式返回。)
[...]
" json":将响应评估为JSON并返回JavaScript对象。
您有2个结果的列表;每个结果都是一个JavaScript对象,其键为pk
,model
和fields
,而fields
值是每个模型字段的另一个对象。