Hallo allemaal,

Ik heb een json file die er ongeveer zo uit ziet:


{
    "status": "ok",
    "artists": [
        {
            "name": "Coldplay",
            "albums": [
                {
                    "name": "The Best of"
                },
                {
                    "name": "Singles"
                },
                {
                    "name": "Live 2012"
                }
            ]
        },
        {
            "name": "Nelly Furtado",
            "albums": [
                {
                    "name": "Singles",
                    "tracks": [
                        {
                            "name": "All Good Things (Come To An End) [feat. Chris Martin from Coldplay] [Radio Edit]",
                            "length": "263"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Swedish House Mafia",
            "albums": [
                {
                    "name": "Singles",
                    "tracks": [
                        {
                            "name": "Meich vs. Clocks (Sebastian Ingrosso & Dirty South vs. Coldplay)",
                            "length": "235"
                        }
                    ]
                }
            ]
        }
    ]
}


zoals je kan zien zijn er soms wel tracks beschikbaar en soms niet. Nu wil ik een lijst hebben met alleen de "tracks->name".
Hier voor had ik dit geschreven:

<?php
//eerst de url enzo ingeladen natuurlijk
foreach ($json->artists->albums->tracks->name as $name) {
echo $name;
}
?>

Maar omdat de tracks onregelmatig zijn werkt het denk ik niet.. hoe maak het zodat het wel werkt?
Alvast bedankt!
In de eerste plaats zal je door de artists and albums moeten lopen, want dat zijn arrays. In de tweede plaats zal je even moeten checken of het tracks element bestaat:

<?php
foreach( $json->artists as $artist ){
  foreach( $artist->albums as $album ){
    if ( isset( $album->tracks ) ){
      foreach( $album->tracks as $track ){
        echo $track->name.'<br>';
      }
    } 
  }
}
?>
Bedankt maar nu is er ook nog een url in die json feed, als ik die dan ophaal wil ik die direct ook weer parse en de gegevens er uit halen.
dus dat zet ik in die foreach maar dat werkt niet...

$url = json_decode(file_get_contents($track->url));
foreach ($url as $songs) {
	echo $songs->name;
}


Wat doe ik fout?
Keizer Webdesign op 09/03/2014 19:56:35

Wat doe ik fout?

Geen idee, zonder te weten hoe die nieuwe json structuur eruitziet valt er natuurlijk niets over te zeggen.

Reageren