Django/JQuery.ajax。使用 ajax 从 JSON 获取值
Django/JQuery.ajax. Get values from JSON using ajax
我的观点是这样的:
def change(request):
users = Account.objects.all().to_json()
return HttpResponse(users, mimetype='application/json')
我的模板中的 javascript 如下所示:
$( "#btn" ).click(function() {
jQuery.ajax({
url: '/change/',
type: 'get',
dataType: 'json',
success: function(data) {
alert(data.username)
},
failure: function(data) {
alert('Got an error dude');
}
});
我可以在 firebug 控制台中看到服务器的响应看起来正常:
[{"username": "admin", "project_list": [], "password": "pbkdf2_sha256000$OA1nceoBeMj2$XFZfZdfOpd7LKOGKyHrnVPUv89daY8+RzoAhApI+ePs=", "is_active": true, "is_superuser": true, "is_staff": false, "last_login": {"$date": 1420983256456}, "_cls": "User.Account", "groups": [], "user_permissions": [], "role": "admin", "_id": {"$oid": "54b27bca8a8d5114ee764bd7"}, "date_joined": {"$date": 1420983242745}}]
但是当我尝试使用
打印警报时
alert(data)
或
alert(data.field)
例如 field = username 我未定义。
当我使用 alert(data) 时,它只是说它是一个对象。
有什么建议吗?
使用$.each()
迭代器:
$.each(data, function(i, item){
console.log(item.username);
});
因为得到的是一个[{}, {}]
的js对象数组,所以如果直接访问键名获取相应的值是获取不到的。因此,您必须在其中循环才能访问对象。
所以在上面的代码中item
是当前的js对象,item.username
会记录admin
.
我的观点是这样的:
def change(request):
users = Account.objects.all().to_json()
return HttpResponse(users, mimetype='application/json')
我的模板中的 javascript 如下所示:
$( "#btn" ).click(function() {
jQuery.ajax({
url: '/change/',
type: 'get',
dataType: 'json',
success: function(data) {
alert(data.username)
},
failure: function(data) {
alert('Got an error dude');
}
});
我可以在 firebug 控制台中看到服务器的响应看起来正常:
[{"username": "admin", "project_list": [], "password": "pbkdf2_sha256000$OA1nceoBeMj2$XFZfZdfOpd7LKOGKyHrnVPUv89daY8+RzoAhApI+ePs=", "is_active": true, "is_superuser": true, "is_staff": false, "last_login": {"$date": 1420983256456}, "_cls": "User.Account", "groups": [], "user_permissions": [], "role": "admin", "_id": {"$oid": "54b27bca8a8d5114ee764bd7"}, "date_joined": {"$date": 1420983242745}}]
但是当我尝试使用
打印警报时alert(data)
或
alert(data.field)
例如 field = username 我未定义。 当我使用 alert(data) 时,它只是说它是一个对象。
有什么建议吗?
使用$.each()
迭代器:
$.each(data, function(i, item){
console.log(item.username);
});
因为得到的是一个[{}, {}]
的js对象数组,所以如果直接访问键名获取相应的值是获取不到的。因此,您必须在其中循环才能访问对象。
所以在上面的代码中item
是当前的js对象,item.username
会记录admin
.