如何在JQuery中迭代JSON数组
问题描述:
我有下面这种类型的数组。我想用JavaScript来迭代这个数组。这怎么可能?如何在JQuery中迭代JSON数组
{
"result": true,
"data": [
{
"ID": 1,
"stage_ID": 1,
"badge_type_ID": 1,
"name": "Despertar da Força",
"description": "Fazer a primeira SuperAtividade",
"type": "",
"image_static": "url123.jpg",
"image_animated": "",
"SQL": "",
"published": 1
},
{
"ID": 2,
"stage_ID": 1,
"badge_type_ID": 1,
"name": "Super 3",
"description": "Fazer 3 SuperAtividades",
"type": "",
"image_static": "urlimage123.png",
"image_animated": "",
"SQL": "",
"published": 1
}
等
我尝试了以下脚本,它返回 “未定义”, “不确定”。
$.getJSON('https://www.legiaodossuperpoderes.com.br/chronus/api/adm/badges', function(data) {
var output= "<ol>";
for (var i in data) {
output += "<li>" + data[i].ID + "</li>"
}
output+="</ol>";
document.getElementById("placeholder").innerHTML=output;
});
任何解决方案?谢谢!
答
您可以尝试转换成JSON对象
$.getJSON('https://www.legiaodossuperpoderes.com.br/chronus/api/adm/badges', function(data) {
var output= "<ol>";
var jsondata = $.JSON.parse(data); // Json object Convertion
for (var i in data) {
output += "<li>" + data[i].ID + "</li>"
}
output+="</ol>";
document.getElementById("placeholder").innerHTML=output;
});
答
您试图访问使用数据[I] .ID未定义的属性。
当您从getJSON()函数得到响应时,您需要用名称调用响应,然后可以使用该名称访问任何内部属性。
现在如果你想迭代使用数据 myResponse变量的键/值,那么你需要这样做。
$.getJSON('https://www.legiaodossuperpoderes.com.br/chronus/api/adm/badges', function(myResponse) {
var output= "<ol>";
var dataCount = myResponse.data.length;
for (var i = 0; i < dataCount; i++) {
output += "<li>" + myResponse.data[i].ID + "</li>";
}
output+="</ol>";
document.getElementById("placeholder").innerHTML=output;
});
我想,'function(data)'包含整个对象。你需要参考对象的数据。 –
尝试使用console.log(data)来检查从getJSON返回的数据 – Kelvin
尝试'data = data.data'。而'data [i]'恰好是个错误,因为'i'是数组的非索引值。 – gdlmx