我在python中创建了一个列表但是如何在javascript中遍历这个列表呢?

时间:2012-12-06 15:23:00

标签: javascript jquery python django json

我在python中创建一个列表,然后将其转换为json。但是我在浏览javascript并显示正确的项目时遇到了麻烦。

有什么建议吗?

蟒:

def friends2(request):
    fb_feed = [#data in here]
    b = json.dumps(fb_feed)
    print b
    return HttpResponse(b)

print b时在控制台中打印的内容:

[
    [1236870349, "Your friend", "Bhangra indian Jingle Bells balle balle Merry Christmas", "2lPdXV1KO4s", "Your friend watched \"Bhangra indian Jingle Bells balle balle Merry Christmas\""], 
    [2303218, "Your friend", "Look at this Instagram (Nickelback Parody)", "ttp://www.c", "Your friend watched \"Look at this Instagram (Nickelback Parody)\""]

]

的javascript

    <script>
$(document).ready(function (){

            event.preventDefault();
            $.ajax({
                 type:"GET",
                 url:"/friends2/",
                 data: {},

                 success: function(b){
                    b = jQuery.parseJSON(b);
                                            console.log(b) //returns null
                    for (var i = 0; i < b.length; i++) { 
                            var friend = "";
                            friend = b[i][3]
                            friend += "\n";
                            $('.social').append(friend);
                        }                

                    }
            });
});
</script>

HTML

<div class = 'social'></div>

3 个答案:

答案 0 :(得分:1)

dataType:json添加到$.ajax脚本

 $.ajax({
         type:"GET",
         url:"/friends2/",  #the url /friends2/ points to friends2 in python
         data: {},
         dataType: json, //ADD THIS
         ...
         ...

如果您不想添加dataType,则可以使用jQuery.parseJSON(b)来解析您的json字符串,

success: function(b) {
    var data = jQuery.parseJSON(b); //parse JSON string here
    ...
    ...

}

答案 1 :(得分:0)

我认为您的代码中存在错误。 json应该是正确的。 b [3]未定义,因为数组长度为2.你的意思是b [i] [3]吗?

就我所知,其他一切都应该有效。

答案 2 :(得分:0)

如果您的视图返回JSON,则应相应地设置内容类型(MIME类型):

return HttpResponse(b, content_type='application/json')

jQuery的$.ajax非常聪明,可以在正确设置MIME类型时自动应用dataType: json

  

dataType

     

默认值:智能猜测(xml,json,script或html)

     

您期望从服务器返回的数据类型。如果没有   指定,jQuery将尝试根据MIME类型推断它   响应