我正在使用jquery遍历json对象...但是有些方法似乎不起作用...
这是我的代码,
$.ajax({
type: "GET",
url: "/users/",
// data: "page="+pageNum,
async: false,
dataType: 'json',
success: function(data){
//alert("OK AJAX");
$("#search_btn").remove();
$('#btnadduser').css('visibility','visible');
$.each(data, function() {
$.each(this, function(k, v) {
/// iterate through the objects
$("#nbody").html("<tr style='background-color:#FFFFFF; font-size:14px;'> <td>"+data.f.user4.first_name+"</td> <td>"+data.f.user4.last_name+"</td><td>"+data.f.user4.username+"</td> <td>"+data.f.user4.email+"</td> <td>"+data.f.user4.username+"</td> <td>");
});
});
}
});
当我在终端中打印json对象时,这就是我得到的。
{"f":
{"user4": {"username": "user4", "first_name": "Alex", "last_name": "kasina", "is_active": true, "email": "[email protected]"},
"user5": {"username": "user5", "first_name": "", "last_name": "", "is_active": false, "email": "", }, "user2": {"username": "user2", "first_name": "", "last_name": "", "is_active": true, "email": ""},
"user3": {"username": "user3", "first_name": "", "last_name": "", "is_active": true, "email": ""},
"user1": {"username": "user1", "first_name": "", "last_name": "", "is_active": true, "email": ""},
"lexx": {"username": "lexx", "first_name": "", "last_name": "", "is_active": true, "email": "[email protected]"}}}
我想遍历设置每个用户的first_name,last_name,user_name等...
请帮忙吗?
风景
@login_required
def users(request):
from django.core.serializers.json import DjangoJSONEncoder
from django.forms.models import model_to_dict
html = User.objects.all()
f = {} # initialise the output
username = 'username' # one of the fields from myModel
[f.update({x[username]: x}) for x in [model_to_dict(y) for y in html]]
result = simplejson.dumps({"f" : f}, cls=DjangoJSONEncoder)
print result#To see the json object
return HttpResponse(result)
最佳答案
views.py
@login_required
def users(request):
from django.core.serializers.json import DjangoJSONEncoder
from django.forms.models import model_to_dict
html = User.objects.all()
f = [model_to_dict(x) for x in html]
return HttpResponse(simplejson.dumps(f), cls=DjangoJSONEncoder)
javascript:
var user_list = JSON.parse(data);
for(var i=0; i<user_list.length; i++) {
var user_name = user_list[i]['username'];
var first_name = user_list[i]['first_name'];
var last_name = user_list[i]['last_name'];
// ...
// do something with user_name, first_name and last_name...
}
关于ajax - 在python/Django中多次迭代json对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15329037/