我正在使用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/

10-11 13:50