从嵌套 json 循环 php 中提取数据
Pull data from nested json loop php
好吧,我已经和这个吵了两天了!!这是我的 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"
}
]
},
我正在尝试从顶级数组(名为 'meetings')中提取开始时间,并从第二级数组(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 中提取无效参数。
变体 2
foreach ($aha['meetings'] as $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>';
}
这让我最接近 - 没有错误但没有 link。我假设这里的代码正在查看该字段,但只是没有从中提取数据...
请帮助新手json人!!
编辑:
如果您的数据如下所示:
$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>";
}
}
如果真的有一个$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 文章的正确格式即可。
非常感谢大家!
好吧,我已经和这个吵了两天了!!这是我的 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"
}
]
},
我正在尝试从顶级数组(名为 'meetings')中提取开始时间,并从第二级数组(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 中提取无效参数。
变体 2 foreach ($aha['meetings'] as $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>';
} 这让我最接近 - 没有错误但没有 link。我假设这里的代码正在查看该字段,但只是没有从中提取数据...
请帮助新手json人!!
编辑:
如果您的数据如下所示:
$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>";
}
}
如果真的有一个$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 文章的正确格式即可。 非常感谢大家!