首頁 > 後端開發 > PHP問題 > php如何實作json轉數組

php如何實作json轉數組

藏色散人
發布: 2023-03-14 21:48:02
原創
9301 人瀏覽過

php實作json轉數組的方法:1、建立一個PHP範例檔案;2、定義一個JSON資料;3、透過「json_decode($json,true)」方法將json轉成陣列即可。

php如何實作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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板