好吧,我已经打了两天了!!这是我的Json结构。[
{
"uuid":"/random number==",
"meeting_number":7196503037,
"host_id":"random number",
"topic":"My's Personal Meeting Room",
"start_time":"2015-01-06T22:01:07Z",
"timezone":"America/Denver",
"duration":56,
"total_size":378080,
"recording_count":1,
"recording_files":[
{
"id":"long number",
"meeting_id":"/NS90bsSTLeGzo6cT0nwXw==",
"recording_start":"2015-01-06T22:01:09Z",
"recording_end":"2015-01-06T22:01:14Z",
"file_size":378080,
"play_url":"https://myurl"
}
]
},
我正试图从顶级数组(名为"会议")中提取"开始时间",并从第二级数组(recording_files)中提取播放Url。我正在使用json_decode将文件解码为数组。
我已经尝试了在这个网站上找到的许多变体,但似乎没有什么能进入播放url。变体1$aha=json_decode($response,true);
foreach ($aha['meetings'] as $key => $value){
foreach($key['recording_files'] as $subkey => $newvalue){
echo '<p>Time : '.$value['start_time'].'</p>
<a href="'.$newvalue['play_url'].'">Recording</a><br>';
}}这在foreach中提取了一个无效参数。
变体2foreach($aha['meetings']为$key=>$value){
echo '<p>Time : '.$value['start_time'].'</p>
<a href="'.$value['play_url'].'">Recording</a><br>';
}这为play_url拉取未定义的索引。与引用['play_url']之前的['recording_files']的代码相同
变化3:然后我试着放弃第一层,只从第二层提取数据:$aha=json_decode($response,true);
foreach ($aha['meetings']['recording_files'] as $key => $value){
echo '<p>Time : '.$value['recording_start'].'</p>
<a href="'.$value['play_url'].'">Recording</a><br>';
}这给了我一个['recording_files']上的未定义索引和foreach错误。
变体4。$aha=json_decode($response,true);
foreach ($aha['meetings'] as $key => $value){
$link=$key['recording_files'];
echo '<p>Time : '.$value['start_time'].'</p>
<a href="'.$link['play_url'].'">Recording</a><br>';
}这让我最接近——没有错误,但没有链接。我假设这里的代码看到了字段,但没有从中提取数据…
请帮助一个新手json!!
如果真的有一个$aha['meetings']
(您没有显示它),那么在第二个foreach
:中使用值而不是键
foreach($aha['meetings'] as $value){
foreach($value['recording_files'] as $newvalue){
修复它的最终代码。
$aha = json_decode($response,true);
foreach ($aha['meetings'] as $key => $value){
echo '<p>Time : '.$value['start_time'].'</p>
<a href="'.$value['recording_files'][0]{'play_url'}.'">Recording</a><br>';}
这只是找到引用play_url片段的正确格式的问题。非常感谢大家!
编辑:
如果你的数据看起来像这样:
$str = "{'"meetings'":[{
'"uuid'":'"/random number=='",
'"meeting_number'":7196503037,
'"host_id'":'"random number'",
'"topic'":'"My's Personal Meeting Room'",
'"start_time'":'"2015-01-06T22:01:07Z'",
'"timezone'":'"America/Denver'",
'"duration'":56,
'"total_size'":378080,
'"recording_count'":1,
'"recording_files'":[
{
'"id'":'"long number'",
'"meeting_id'":'"/NS90bsSTLeGzo6cT0nwXw=='",
'"recording_start'":'"2015-01-06T22:01:09Z'",
'"recording_end'":'"2015-01-06T22:01:14Z'",
'"file_size'":378080,
'"play_url'":'"https://myurl'"
}
]
}]}";
$json = json_decode($str);
$res = $json->{'meetings'};
foreach($res as $keys){
echo $keys->{'start_time'}."<br>";
foreach ($keys->{'recording_files'} as $data){
echo $data->{'play_url'}."<br>";
echo $data->{'recording_start'}."<br>";
}
}