我有一个 JsonResponse,如下所示:
[{"pk": 1, "fields": {"email": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="234a4d454c6350534c57570d404c4e" rel="noreferrer noopener nofollow">[email protected]</a>", "locations": [1], "group_id": "spott", "group_name": "spott"}, "model": "grouping"},
{"pk": 2, "fields": {"email": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="90f9fef6ffd0e3e0ffe4e4bef3fffd" rel="noreferrer noopener nofollow">[email protected]</a>", "locations": [1, 2], "group_id": "spottalle", "group_name": "spott alle"}, "model": "grouping"}]
我尝试像这样访问数据:
for (var key in data) {
console.log(key)
console.log(data[key]);
}
响应是每个字母而不是每个对象。这有点奇怪,在查看了 stackoverflow 上的答案后,我也尝试了其他方法,但总是得到相同的结果。
结果应该是 group_name 和 group_id。有人能帮我吗?预先感谢您
最佳答案
事实上,这是一个数组,因此您可以简单地使用经典的 for 循环来循环它,这是一个示例片段:
var data = [{"pk": 1, "fields": {"email": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="462f2820290635362932326825292b" rel="noreferrer noopener nofollow">[email protected]</a>", "locations": [1], "group_id": "spott", "group_name": "spott"}, "model": "grouping"},
{"pk": 2, "fields": {"email": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="ea83848c85aa999a859e9ec4898587" rel="noreferrer noopener nofollow">[email protected]</a>", "locations": [1, 2], "group_id": "spottalle", "group_name": "spott alle"}, "model": "grouping"}];
for (var i=0; i<data.length; i++) {
console.log(data[i]); //You will get an object
console.log(data[i].pk);
}
在每次迭代中,您将获得一个对象,然后您可以访问它的属性。
编辑:
这取决于这里data
的类型,如果它是像你在评论中提到的string
,你应该使用JSON.parse(data)解析它;
首先,然后你可以循环它。
否则,如果它是一个数组
,您只需直接循环其元素即可。
关于javascript - javascript 中的 Json 响应未正确循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36330203/