php實作json轉數組的方法:1、建立一個PHP範例檔案;2、定義一個JSON資料;3、透過「json_decode($json,true)」方法將json轉成陣列即可。
本文操作環境:Windows7系統、PHP7.1版、DELL G3電腦
php如何實作json轉陣列?
json_decode()
#此函數用於將json文字轉換為對應的PHP資料結構。
下面是一個例子:
$json ='{"foo": 12345}'; $obj = json_decode($json); print $obj->{'foo'};// 12345
通常情況下,json_decode()總是傳回一個PHP對象,而不是陣列。例如:
$json ='{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json));
結果就是產生一個PHP物件:
object(stdClass)#1 (5) { ["a"] => int(1) ["b"] => int(2) ["c"] => int(3) ["d"] => int(4) ["e"] => int(5) }
如果想要強制產生PHP關聯數組,json_decode()需要加上一個參數true:
$json ='{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json,true));
結果就產生了一個關聯數組:
array(5) { ["a"] => int(1) ["b"] => int(2) ["c"] => int(3) ["d"] => int(4) ["e"] => int(5) }
下面三種json寫法都是錯的,你能看出錯在哪裡嗎?
json_decode()的常見錯誤
$bad_json ="{ 'bar': 'baz' }"; $bad_json ='{ bar: "baz" }'; $bad_json ='{ "bar": "baz", }';
第一個的錯誤是,json的分隔符號(delimiter)只允許使用雙引號,不能使用單引號。第二個的錯誤是,json名值對的"名"(冒號左邊的部分),任何情況下都必須使用雙引號。第三個的錯誤是,最後一個值之後不能加上逗號(trailing comma)。對這三個字串執行json_decode()都會傳回null,並且報錯。
另外,json只能用來表示物件(object)和陣列(array),如果對字串或數值使用json_decode(),將會傳回null。
var_dump(json_decode("Hello World"));//null
推薦學習:《PHP影片教學》
以上是php如何實作json轉數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!