Php 通过json循环(非对象?)

Php 通过json循环(非对象?),php,json,foreach,Php,Json,Foreach,我想在服务器上使用json文件显示包含标题、流派、子流派、描述、开始时间和持续时间的电视节目列表,但出现以下错误: 注意:第13行输入8——尝试获取非对象的属性 E_警告:类型2——为foreach()提供的参数无效——在第13行 下面是json示例的一部分: {"channel":"6280", "banned":true, "plan":[ {"id":"-1", "pid":"0", "starttime":"00:00", "dur":"65", "title":"", "normali

我想在服务器上使用json文件显示包含标题、流派、子流派、描述、开始时间和持续时间的电视节目列表,但出现以下错误:

注意:第13行输入8——尝试获取非对象的属性

E_警告:类型2——为foreach()提供的参数无效——在第13行

下面是json示例的一部分:

{"channel":"6280",
"banned":true,
"plan":[
{"id":"-1",
"pid":"0",
"starttime":"00:00",
"dur":"65",
"title":"",
"normalizedtitle": "",
"desc":"",
"genre":"",
"subgenre":"",
"prima":false 
},


{"id":"94622386",
"pid":"507461",
"starttime":"01:05",
"dur":"65",
"title":"Sex Researchers",
"normalizedtitle": "sex-researchers",
"desc":"Ep. 2 - Ciclo The Body of...",
"genre":"mondo e tendenze",
"subgenre":"societa",
"prima":false 
},
以下是我使用的php代码:

<?php
$channel = '6280';
$current_unix = time();

$json = json_decode(file_get_contents('http://guidatv.sky.it/app/guidatv/contenuti/data/grid/'.date('y_m_d').'/ch_'.$channel.'.js'));
//print_r($json);

echo '<ul>';

foreach ($json as $data) {

echo '<li>';
foreach ($data->plan as $prog) {

if ( $current_unix < $prog->starttime ) {

echo $prog->id . '<br>';
echo $prog->starttime . '<br>';
echo $prog->dur . '<br>';
echo $prog->desc . '<br>';
if ( isset($prog->genre)) {
echo $prog->genre . '<br>';
}
}
}
echo '</li>';
}
echo '</ul>';
?>


你能帮我解决这个问题吗?谢谢

您不能在对象上循环。JSON不返回通道数组,只返回通道对象。以下是您想要的:

$json = json_decode(file_get_contents('http://guidatv.sky.it/app/guidatv/contenuti/data/grid/'.date('y_m_d').'/ch_'.$channel.'.js'));

echo '<ul>';
foreach ($json->plan as $prog) {
    echo "<li>" . $prog->title . '</li>';
}
echo '</ul>';
$json=json\u解码(文件获取内容('http://guidatv.sky.it/app/guidatv/contenuti/data/grid/.date('y_m_d')。/ch_'.$channel..js');
回声“
    ”; foreach($json->计划为$prog){ 回显“
  • ”$prog->title.
  • ”; } 回声“
”;
这是完整的JSON示例吗?因为您给定的JSON无效。您好,这里您可以找到完整的JSON:如何显示给定JSON的电视节目列表?