php中json_decode返回陣列或物件
轉自:http://www.3lian.com/edu/2014/02-11/128395.html
1.json_decode()
json_decode
(PHP 5 >= 5.2.0, PECL json >= 1.2.0)
json_decode — 對 JSON 格式的字串進行編碼
說明
mixed json_decode ( string $json [, bool $assoc ] )
接受一個 JSON 格式的字串並且把它轉換為 PHP 變數
引數
json
待解碼的 json string 格式的字串。
assoc
當該引數為 TRUE 時,將返回 array 而非 object 。
返回值
Returns an object or if the optional assoc parameter is TRUE, an associative array is instead returned.
範例
Example #1 json_decode() 的例子
程式碼如下 | |
<?php 上例將輸出:
object(stdClass)#1 (5) {
array(5) {
結果為: Array ( [0] => stdClass Object ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => ) [1] => stdClass Object ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => ) [2] => stdClass Object ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => ) ) |
可以看出經過json_decode()編譯出來的是物件,現在輸出json_decode($data,true)試下
程式碼如下 | |
echo json_decode($data,true); 結果: Array ( [0] => Array ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => ) [1] => Array ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => ) [2] => Array ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => ) ) |
可以看出 json_decode($data,true)輸出的一個關聯陣列,由此可知json_decode($data)輸出的是物件,而json_decode("$arr",true)是把它強制生成PHP關聯陣列.
假如我們獲取的JSON資料如下:(可以使用curl、fsockopen等方式獲取)
程式碼如下 | |
{ |
一、json_decode返回array的方式:
json_decode($data,true);用json_decode函式返回array的方式得到:
程式碼如下 | |
Array ) ) |
我們在PHP語言中可以用以下方法取得我們想要的值:
程式碼如下 | |
<?php |
二、json_decode返回object的方式:
json_decode($data);
用json_decode函式返回object的方式得到:
程式碼如下 | |
stdClass Object ) ) |
我們在PHP語言中可以用以下方法取得我們想要的值:
程式碼如下 | |
<?php
STR; |