我嘗試使用php代碼解析json變量。問題是一些數組鍵包含每次迭代可更改的值。順便說一下,這不是一個重複的問題,沒有什麼比使用可變變量解析json。這裏是我的JSON例子和PHP代碼,也輸出;解析JSON使用可更改的鍵
{
"link":"",
"host":"stream",
"filename":"Rock Ballads The Best Of 70-90's",
"icon":"https:\/\/i.ytimg.com\/vi\/JN80ayCfmW0\/hqdefault.jpg",
"streaming":{
"audio track in mp3 (54.54MB)":"http:\/\/server.example.parsing.com\/str\/wlqcjv8246\/Rock+Ballads+The+Best+Of+70-90%26%23039%3Bs%28p%29.mp3",
"360p video in mp4 (80.04MB)":"http:\/\/server.example.parsing.com\/str\/wlqcjyfc33\/Rock+Ballads+The+Best+Of+70-90%26%23039%3Bs%28480p%29.mp4",
"240p video in mp4 (76.55MB)":"http:\/\/server.example.parsing.com\/str\/wlqck18b72\/Rock+Ballads+The+Best+Of+70-90%26%23039%3Bs%28240p%29.mp4",
"144p video in mp4 (71.09MB)":"http:\/\/server.example.parsing.com\/str\/wlqck4e410\/Rock+Ballads+The+Best+Of+70-90%26%23039%3Bs%28144p%29.mp4"
},
"nb":0,
"error":"",
"paws":false
}
這是我使用的php代碼;
if($host=="www.youtube.com"){
$decodeProcess = json_decode($output,true);
echo ($decodeProcess['filename']);
echo ($decodeProcess['icon']);
echo ($decodeProcess['streaming']['audio track in mp3 (54.54MB)']);
}
在這種情況下,文件名和圖標效果很好,但「在MP3(54.54MB)音軌」或「MP4(71.09MB)144P的視頻」是問題,我解析因爲每次文件大小更改。我能做什麼?
只是爲了澄清,你的變量'$ host'是從json鍵'「host」'? – Kai
你從哪裏得到這個JSON?一種解決方案可能是循環遍歷$ decodeProcess ['streaming']'並查看該密鑰是否包含mp3中的音頻軌道或其他內容。 –
如果是這樣的話,那麼你想解析json並將'$ host'分配給'someJson-> host'的內容 – Kai