我在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>
答案 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类型推断它 响应