2016-05-13 99 views
0

我有下面這種類型的數組。我想用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; 
    }); 

任何解決方案?謝謝!

+0

我想,'function(data)'包含整個對象。你需要參考對象的數據。 –

+0

嘗試使用console.log(data)來檢查從getJSON返回的數據 – Kelvin

+0

嘗試'data = data.data'。而'data [i]'恰好是個錯誤,因爲'i'是數組的非索引值。 – gdlmx

回答

2

您可以嘗試轉換成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; 
    }); 
0

您試圖訪問使用數據[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; 
});