我拉JSON數據爲mySQL導入,並在我的JSON文件的JSON解碼語句後設置變量我正在努力與某事。我的變量設置看起來像這樣
$name = $data['available_channels']['3']['name'];
像這樣
"available_channels": {
"3": {
"num": 152,
"name": "Sky Sports 3",
"stream_type": "live",
"type_name": "Live Streams",
"stream_id": "3",
"stream_icon": "http://www.tv-logo.com/pt-data/uploads/images/logo/sky_uk_sports3.jpg",
"epg_channel_id": "Sky Sports 3",
"added": "0",
"category_name": "Sports UK",
"category_id": "5",
"series_no": null,
"live": "1",
"container_extension": null,
"custom_sid": ":0:86:EEE:7F2:2:11A0000:0:0:0:",
"tv_archive": 0,
"direct_source": "",
"tv_archive_duration": 0
},
我的問題有關JSON是,對於服務的每個通道有一個新的數字開頭。所以我需要我的變量拉入像這樣,
$name = $data['available_channels']['ANY VALUE HERE']['name'];
任何想法?我知道這一定是簡單的,我有在這裏一個金髮碧眼的時刻
感謝
更新1
//convert json object to php associative array
$data = json_decode($jsondata, true);
//get the values and asign variables
$name = $data['available_channels']['3']['name'];
更新2
全部代碼現在
$data = json_decode($jsonFile, true);
for($i = 0; $i <= count($data['available_channels']); $i++){
$name = $data['available_channels'][$i]['name'];
$num = $data['available_channels'][$i]['num'];
$epg_channel_id = $data['available_channels'][$i]['epg_channel_id'];
$category_name = $data['available_channels'][$i]['category_name'];
$stream_icon = $data['available_channels'][$i]['stream_icon'];
//insert into mysql table
$sql = "INSERT INTO channels(name, num, epg_channel_id, category_name, stream_icon)
VALUES('$name', '$num', '$epg_channel_id', '$category_name', '$stream_icon')";
if(!mysql_query($sql,$con))
{
die('Error : ' . mysql_error());
}
}
獲取的234行約117但其他行都是空白...任何想法
有什麼問題?你可以把任何值 –
你試圖引用一個象arr的對象唉。試試'$ data-> something-> otherthing'或'$ data = json_decode($ data,1)' –
,這樣它就可以在一個循環atm中通過。一切都很好,但不是解碼的第二個值是3的地方,我需要它的值=任何 –