【发布时间】:2018-06-21 05:45:18
【问题描述】:
我正在开发一个需要解析 Ajax 响应的网站,它看起来像这样:
{"comments": "[{\"model\": \"modelhandler.comment\", \"pk\": 4, \"fields\": {\"user\": 2, \"description\": \"hello this is a comment but I don't know if it's working yet.......\", \"replyto\": null, \"uploaded\": \"2018-01-10T20:35:40.856Z\", \"updated\": \"2018-01-10T20:35:40.856Z\"}}]"}
我尝试从这个响应中获取数据,如下所示:
success: function (data) {
var json = JSON.parse(JSON.stringify(data));
$.each(json, function(key,value) {
alert(value.comments);
});
}
不过这提醒了我undefined
这里的 cmets 字段中有 1 条评论,但我可能有超过 1 条评论。我将如何从这样的 Json 响应中检索数据?
编辑:
我记录了data 对象,我得到了这个:
Object
comments
:
"[{"model": "modelhandler.comment", "pk": 4, "fields": {"user": 2, "description": "hello this is a comment but I din't know if it's working yet.......", "replyto": null, "uploaded": "2018-01-10T20:35:40.856Z", "updated": "2018-01-10T20:35:40.856Z"}}]"
__proto__
:
Object
在谷歌浏览器中使用 console.log()
json 也是由 django 视图生成的,如下所示:
def obtain_comments(request, *args, **kwargs):
begin = int(request.GET['begin'])
end = int(request.GET['end'])
n_comments = end - begin
all_split = Comment.objects.order_by('-uploaded')[:end]
data = {
'comments': serializers.serialize('json',all_split),
}
return JsonResponse(data)
【问题讨论】:
-
我不明白这个:
JSON.parse(JSON.stringify(...))。为什么要字符串化只是为了立即解析? -
删除
stringify;用于将已经解析 JSON 的内容转换为字符串。你只想要JSON.parse(data) -
现在我删除了我得到的字符串:
SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data -
哎呀没注意到
django标签@LouysPatriceBessette -
@MuhammadOmerAslam:当然……我刚刚添加了它。 ;)
标签: javascript jquery json ajax django