簡體   English   中英

getJSON的jQuery問題

[英]Jquery issue with getJSON

我的問題是一個JavaScript問題,我嘗試使用Jquery的$ .getJson函數解析一個Json文件,當我將它們分別放入變量中時,我注意到它占用了我認為更多的對象,這里是代碼JS:

$.getJSON(
url,
function(data) {
   var content = '<h1>Applications</h1>';
   content += '<ul>';
       for (var pos in data){
           var app = data[pos];
           content += '<li>'+app.name+'</li>';
       }
   content += '</ul>';
   $('div.apps').html(content);
}

這是json文件:

[
 {
    "name": "apidocs",
    "staging": {
        "model": "rack",
        "stack": "ruby18"
 }
 ,
 {
    "name": "apidocs2",
    "staging": {
        "model": "rack",
        "stack": "php53"
 }
 ,
 {
    "name": "apidocs3",
    "staging": {
        "model": "rack",
        "stack": "java17"
 }
]

因此,在我的html頁面中,我在全局性中有6個對象而不是3個。最后3個對象是“ undefined”,但我只希望json文件中的對象,因為firefox不接受undefined標記。

       for ( var i = 0; i < data.length; i++ ) {
           var app = data[ i ];
           content += '<li>'+app.name+'</li>';
       }

避免 for..in循環。

for (var pos in data){

用通常的方式替換它:

for (var i=0; i<data.length; i++){ //use as data[i]

如果要使用for..in循環,請確保在使用data.hasOwnProperty(..)之前使用它。 否則,您必然會獲得比預期更多的對象。 它們實際上是data繼承的其他屬性。

更正JSON,您的開放標簽過多。

更正的JSON >>

另外,請更正for循環。 使用var count = 0; count < data.length; count++ var count = 0; count < data.length; count++

由於您使用的是jQuery,請使用其完善的$.each函數。

$.each( data, function( d ) {
    content += '<li>' + d.name + '</li>';
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM