作者keisuke08 (車市回溫了嗎?回溫在哪裡)
看板PHP
標題[請益] json_decode後的資料如何使用?
時間Mon Mar 10 10:06:09 2014
$content = file_get_contents($siteurl);
$data = json_decode($content);
echo $data[0]->title." ".$data[0]->showinfo[0]->time;
資料都出不來,是用法有錯誤嗎?
用print_r顯示$data的結果(只貼上第一筆)
Array
(
[0] => stdClass Object
(
[version] => 1.4
[UID] => 526aa481e44da0ea8d4168c4
[title] => 2014TIFA-拉布蘭之心人聲音樂會
[category] => 1
[showInfo] => Array
(
[0] => stdClass Object
(
[time] => 2014/03/07 19:30:00
[location] => 台北市中山南路21-1號
[locationName] => 國家演奏廳
[onSales] => Y
[price] => 400,500
[latitude] => 25.0348366
[longitude] => 121.5176314
)
[1] => stdClass Object
(
[time] => 2014/03/08 19:30:00
[location] => 台北市中山南路21-1號
[locationName] => 國家演奏廳
[onSales] => Y
[price] => 400,500
[latitude] => 25.0348366
[longitude] => 121.5176314
)
)
[showUnit] =>
[discountInfo] =>
[descriptionFilterHtml] =>
[imageUrl] =>
[masterUnit] => Array
(
[0] => 國立中正文化中心
)
[subUnit] => Array
(
[0] =>
)
[supportUnit] => Array
(
[0] =>
)
[otherUnit] => Array
(
[0] => 主要藝文支持:JTI
)
[webSales] =>
http://www.artsticket.com.tw/CKSCC2005/Product/Product00/ProductsDetailsPage.aspx?ProductID=oK4bYlG1GfzBcHkQto2QJ
[sourceWebPromote] =>
http://tifa.ntch.edu.tw/
[comment] =>
[editModifyDate] => 2013/10/28 14:46:13
[sourceWebName] => 兩廳院售票網
[startDate] => 2014/03/07
[endDate] => 2014/03/08
[status] => success
[total] => 111
)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.124.108.82
1F:→ liaosankai:先 json_decode($content, true); 試試 03/10 10:19
2F:→ rainlay:同樓上 解完後用陣列方式取 03/10 10:31
3F:→ alog:stdObject 取值方式是 $object->column_name 03/10 10:45
4F:→ alog:json_decode 不見得需要轉成 array 就純粹使用差異 03/10 10:45
5F:→ alog:另外就是建議用 foreach 去列舉資料 03/10 10:46
6F:→ alog:因為如果直接 $object[0]->object2[0]->column_name 03/10 11:01
7F:→ alog:在部分資料不齊全下會報錯 03/10 11:02
8F:推 bobju:json_decode 預設是解成物件, 不過個人使用經驗上解成陣列 03/10 11:22
9F:→ bobju:比較方便使用, 因為解成物件的話 底下可能會有物件包陣列的 03/10 11:22
10F:→ bobju:情形 資料形態不一致 處理起來很雜很討厭 03/10 11:23
11F:→ bobju:1樓的做法是解成陣列的做法 我也會這麼做 03/10 11:25
12F:推 tails32100:我會用預設的,因為還是可以用foreach取 03/10 11:31
13F:→ tails32100:另外,開發中只要出錯,就會知道取值的方式錯誤了 03/10 11:31
14F:→ tails32100:Array通常要用foreach, Object通常是要個別取值 03/10 11:32
15F:→ tails32100:當然這只是習慣問題啦, 其實兩個方法都可以用XD 03/10 11:34
16F:推 bobju:這不光是習慣問題而已, 解成陣列的確比物件好處理得多 尤其 03/10 13:03
17F:→ bobju:若是不均勻的多層樹 或是需要遞迴處理的 物件夾雜陣列的結構 03/10 13:04
18F:→ bobju:真的會搞死人 03/10 13:04
19F:推 liaosankai:↑樓上+1,最近被遞迴樹搞到XD 03/10 13:24
20F:→ keisuke08:感謝各位回覆,已解決,轉成陣列方式好用很多!!! 03/10 17:48