我有一个ajax请求调用QueryDB并尝试查询数据。
def QueryDB(request):
_exp = request.GET['exp']
_alg = request.GET['alg']
_orderby = request.GET['orderby']
_type = request.GET['type']
_nOutput = request.GET['nOutput']
if(_type == 'fp'):
evs = ev_detection.objects.filter(alg=_alg, exp = _exp)
order_evs = evs.order_by('score');
#order_evs = order_evs[0:int(_nOutput)]
data = serializers.serialize('json', order_evs)
return HttpResponse(data, content_type = "application/json")
ev_detection模型:
class ev_detection(models.Model):
imageset = models.CharField(max_length=20,default='')
exp = models.CharField(max_length=20,default='')
alg = models.CharField(max_length=20)
nFrame = models.FloatField()
xAxis = models.FloatField()
yAxis = models.FloatField()
width = models.FloatField()
height = models.FloatField()
score = models.FloatField()
match = models.IntegerField()
我的AJAX功能:
$(document).ready(function(){
$('#fpquery').on("click", function(){
$.ajax({
type:'GET',
url: '/results/QueryDB',
data: {
'exp':'Reasonable',
'alg':'FT22-OI',
'type':'fp',
'orderby': 'score',
'nOutput': 5
},
dataType: 'json',
success: function (data) {
alert(data[0].length);
}
});
});
});
警告弹出值"未定义"
但当我将其更改为alert(data.length);
时,它返回5,这是正确的数字。我只是想知道如何在我的情况下获得正确的json返回?
答案 0 :(得分:0)
您已拥有正确的数据。
data[0]
是一个对象。在Javascript中,对象不具有.length
属性。