遍历 json 个查询集

Iterating through json queryset

我有一个 Ajax 搜索表单,目前可以正确返回查询用户的用户名和个人资料图片,如下所示:

[{"username": "bugfixtest1", "userprofileinfo__profile_pic": "user-icon.png"}, {"username": "test", "userprofileinfo__profile_pic": "placeholder.jpg"}, {"username": "testemailsend", "userprofileinfo__profile_pic": null}, {"username": "testwithoutprofile", "userprofileinfo__profile_pic": null}]

不过,我现在正尝试遍历其中的每一个并将结果输出为 HTML。但是以下内容似乎不起作用:

 $.ajax({
        url: '/ajax/search-users/',
        type: 'GET',
        data: {
          'Q': text
        },
        dataType: 'json',
        success: function(data) {
          var item = data.usersearchresult
          $.each(item.DATA, function(index,item) {
            $('#search_results').html('<li>' + item.username + ' </li>');
         });

我也试过:

    success: function(data) {
      for (var i = 0; i < data['usersearchresult'].length; i++){
            $('#search_results').html('<li>' + data['usersearchresult'][i] + ' </li>');
      }
    }

但是这些似乎都不起作用?

意识到问题了。如果有人遇到类似的问题,json 被输出为字符串而不是 json 对象。

添加以下修复它:

var item = data.usersearchresult
var parsed = JSON.parse(item);

for (var i = 0; i < parsed.length; i++){....