2015-06-14 34 views
3

所以我建立了这个JSON文件(http://www.smartbustracking.be/json/data.json),现在我能够检索数据。但我想实现的是用for循环过滤基于id的数据。如何检索过滤的数据从JSON与双循环

我能够显示一个特定的id项,但不是所有与该特定id相关的数据。

所以必须有一个更好的理解我试图解释通过的jsfiddle看到代码 - >https://jsfiddle.net/r4gkw1w8/1/

var json= [ 
    { 
    "id":"1", 
    "longitude":"4.420556809486086", 
    "latitude":"51.21703476701095", 
    "description":"Station van Mechelen", 
    "busnummer":"14", 
    "name":"Station Mechelen", 
    "busuur":"14:45", 
    "bussen":[ 
     { 
     "busnummer":"530", 
     "busnaam":"Aarshot - Tremelo - Keerbergen - Mechelen", 
     "bushaltes":[ 
      { 
      "bushalte":"Zandpoortvest", 
      "aankomstuur":"17:40" 
      }, 
      { 
      "bushalte":"Raghenoplein", 
      "aankomstuur":"17:45" 
      }, 
      { 
      "bushalte":"Station perron 13", 
      "aankomstuur":"17:52" 
      } 
     ] 
     }, 
     { 
     "busnummer":"55", 
     "busnaam":"Test - Test - Test", 
     "bushaltes":[ 
      { 
      "bushalte":"Test 1", 
      "aankomstuur":"16:40" 
      }, 
      { 
      "bushalte":"Test 2", 
      "aankomstuur":"16:45" 
      }, 
      { 
      "bushalte":"Test 3 perron 13", 
      "aankomstuur":"16:52" 
      } 
     ] 
     } 
    ] 
    }, 
    { 
    "id":"2", 
    "longitude":"4.421180", 
    "latitude":"51.216227", 
    "description":"Station van Mechelen", 
    "busnummer":"180", 
    "name":"Station antwerpen", 
    "busuur":"14:45", 
    "bussen":[ 
     { 
     "busnummer":"630", 
     "busnaam":"Busnaam 1 ID 2", 
     "bushaltes":[ 
      { 
      "bushalte":"dafas", 
      "aankomstuur":"14:40" 
      }, 
      { 
      "bushalte":"fadas", 
      "aankomstuur":"14:45" 
      }, 
      { 
      "bushalte":"afdas perron 13", 
      "aankomstuur":"14:52" 
      } 
     ] 
     }, 
     { 
     "busnummer":"660", 
     "busnaam":"Busnaam 2 ID 2", 
     "bushaltes":[ 
      { 
      "bushalte":"Test 1", 
      "aankomstuur":"13:40" 
      }, 
      { 
      "bushalte":"Test 2", 
      "aankomstuur":"13:45" 
      }, 
      { 
      "bushalte":"Test 3 perron 13", 
      "aankomstuur":"13:52" 
      } 
     ] 
     } 
    ] 
    } 
]; 



var bushalte2=$(json).filter(function (i,field){return field.id==2;}); 


for (var i=0;i<bushalte2.length;i++) 
    { 
    $("#bussen").append(bushalte2[i].name + "<br/>"); 
    $("#bussen").append(bushalte2[i].bussen[i].busnummer);  



} 

所以我基本上要的是过滤所有与特定ID

数据
+0

林不知道我理解你的问题,但你想要显示所选内容(id,long,lat,desc等)内的所有信息? –

+0

我想显示所有的公交车号码,例如身份证号码1 – GY22

回答

1

如果我理解正确的话,你需要添加额外的for循环所有bussen

for (var i=0;i<bushalte2.length;i++) 
    { 
    $("#bussen").append(bushalte2[i].name + "<br/>"); 
     for (var j=0; j <bushalte2[i].bussen.length; j++) { 
     $("#bussen").append(bushalte2[i].bussen[j].busnummer + "<br/>");   
     }  
} 

这里被更新的jsfiddle https://jsfiddle.net/or4e8t3u/

+0

非常感谢您的帮助。你是一个拯救生命的人 – GY22