Possible Duplicate:
Nested json to php search listing
i am trying to parse some JSON, i currently got everything parsed on a single page, but its too much information to put on one page i want to be able to filter through it by listing the parent objects “church” and then once a parent is clicked i’d like the child (nested) objects “tracks” to be listed (basically to filter through the JSON), (think of your iPod you click on a Artist(which is the “church”) then a album (which is “album) then a track (which is “tracks” in the json)
so how do i make a parent object a link that parses the next level of JSON?
you can visit http://ggcc.tv/JSON_Parsers/Music.php to see what i have so far
please help, thank you.
PHP:
http://www.godsgypsychristianchurch.net/music.json’;
$content = file_get_contents($filepath);
$json = json_decode($content, true);
$count = 0;
foreach ($json['rows'] as $row) {
++$count;
echo "<h1>Row: {$count}</h1>";
echo "Album: {$row[doc]['album']}<br />";
echo "Church: {$row[doc]['church']}<br />";
echo "Description: {$row[doc]['des']}<br />";
echo "<img src=\"{$row['doc']['artwork']}\" alt=\"my image \" width=\"250\" /><br /><br />";
$songCount = 0;
foreach ($row['doc']['tracks'] as $song) {
++$songCount;
echo $song['name'] . ' - ';
$songUrl = $row['doc']['baseurl'] . urldecode($song['url']);
echo "<a href=\"{$songUrl}\">{$songUrl}</a><br />";
}
echo '<br /><br />';
}
exit;
?>
JSON ( http://www.godsgypsychristianchurch.net/music.json ):
{"total_rows":1,"offset":0,"rows":[
{"id":"All Things Are Possible",
"key":"All Things Are Possible",
"doc":{"_id":"All Things Are Possible",
"album":"All Things Are Possible",
"artwork":"http://godsgypsychristianchurch.net/music_artwork/DEFAULT_COVER2.png",
"baseurl":"http://www.godsgypsychristianchurch.net/music",
"church":"Atlanta GA",
"cityartwork":"http://www.ggcc.tv/LogoNE.png",
"des":"All Things Are Possible from the Atlanta GA Church, Pastor Nick White",
"tracks":[
{"name":"1 Intro",
"url":"/Atlanta%20GA/All%20things%20are%20possible/01%20Intro.mp3"},
{"name":"2 Wo si O Drom",
"url":"/Atlanta%20GA/All%20things%20are%20possible/02%20Wo%20si%20O%20drom.mp3"},
{"name":"3 Nas Murrgo Shov",
"url":"/Atlanta%20GA/All%20things%20are%20possible/03%20Nas%20murrgo%20shov.mp3"},
{"name":"4 To Cho Vos",
"url":"/Atlanta%20GA/All%20things%20are%20possible/04%20To%20cho%20vos.mp3"},
{"name":"5 Tu Son Kai Sastridas",
"url":"/Atlanta%20GA/All%20things%20are%20possible/05%20Tu%20son%20kai%20sastridas.mp3"},
{"name":"6 Now I Am Strong",
"url":"/Atlanta%20GA/All%20things%20are%20possible/06%20Now%20I%20am%20strong.mp3"},
{"name":"7 Sorr Nevee",
"url":"/Atlanta%20GA/All%20things%20are%20possible/07%20Zorr%20nevee.mp3"},
{"name":"8 Preaching",
"url":"/Atlanta%20GA/All%20things%20are%20possible/08%20Preaching.mp3"},
{"name":"9 Arkadyan Amey",
"url":"/Atlanta%20GA/All%20things%20are%20possible/09%20Arkadyan%20amey.mp3"},
{"name":"10 O Christo Ka Wudarr",
"url":"/Atlanta%20GA/All%20things%20are%20possible/10%20O%20Christo%20ka%20wudarr.mp3"},
{"name":"11 Eloi, Eloi",
"url":"/Atlanta%20GA/All%20things%20are%20possible/11%20Eloi%2C%20Eloi.mp3"},
{"name":"12 Amadow Dell",
"url":"/Atlanta%20GA/All%20things%20are%20possible/12%20Amadow%20Dell.mp3"},
{"name":"13 Sastiar Amey Devla",
"url":"/Atlanta%20GA/All%20things%20are%20possible/13%20Sastiar%20amey%20Devla.mp3"},
{"name":"14 Tu Skepeese",
"url":"/Atlanta%20GA/All%20things%20are%20possible/14%20Tu%20skepeese.mp3"},
{"name":"15 Dov Ma Godgee",
"url":"/Atlanta%20GA/All%20things%20are%20possible/15%20Dov%20ma%20godgee.mp3"},
{"name":"16 The Lord is my strength",
"url":"/Atlanta%20GA/All%20things%20are%20possible/16%20The%20Lors%20is%20my%20strength.mp3"}
]}},
Say you wanted to link the churches to their music, first you would loop through and the church names, put them in array, dedupe them, print them out, link them like
then in getchurchmusic.php do what you are doing now but filter on church
this is not tested, this is not efficient – you should put all this data in database, cache the file etc, and is not XSS free, it’s just rough code to give you a starting point