How to get filtered data from json with double loop

So I created this json file ( http://www.smartbustracking.be/json/data.json ) and now I can get the data. but I would like to achieve filtering data based on id with a for loop.

I can show one element of a specific id, but not all data related to that specific id.

So need to better understand what I am trying to explain, have a look at the code via 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);      



}

      

So what I basically want is to filter out all data related to a specific id

+3


source to share


1 answer


If I understood you correctly, you need to add an extra loop for all 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 update here https://jsfiddle.net/or4e8t3u/

+1


source







All Articles