首頁 >後端開發 >PHP問題 >如何將PHP數組資料轉換為json

如何將PHP數組資料轉換為json

醉折花枝作酒筹
醉折花枝作酒筹原創
2021-04-06 15:55:194802瀏覽

在php中,可以使用json_encode()函數來將陣列資料轉換成json。 json_encode()函數可以對變數進行json編碼,如果轉換成功則傳回json數據,反之則回傳false。

如何將PHP數組資料轉換為json

本教學操作環境:windows7系統、PHP7.1版,DELL G3電腦

現在當我們需要用ajax與後台進行互動時,如何將php的陣列與json進行轉換。

強大的PHP已經提供了內建函數:json_encode()json_decode()。很容易理解,json_encode()就是將PHP陣列轉換成Json。相反,json_decode()就是將Json轉換成PHP陣列。

Json的具體形式是:

1.物件

物件是一個無序的“'名稱/值'對”集合。一個物件以「{」(左括號)開始,「}」(右括號)結束。每個「名稱」後面跟著一個「:」(冒號);「『名稱/值' 對」之間使用「,」(逗號)分隔。

2、陣列

陣列是值(value)的有序集合。一個陣列以「[」(左中括號)開始,「]」(右中括號)結束。值之間使用“,”(逗號)分隔。

注意:物件和陣列兩種形式在JS中的調用時不時不一樣啊,物件用「.」調用,陣列用下標[0]、[1]調用。也要注意傳遞Json字串時string類型的值要用引號括起來。

實例1:

$array = array("name" => "Eric","age" => 23); 
echo json_encode($array);

程式將列印出:

{“name”:”Eric”,”age”:23}

#實例2:

$array = array(0 => "Eric", 1 => 23); 
echo json_encode($array);

程式將輸出:

["Eric",23]

以上兩個範例可以看出,兩者在js中的呼叫是不同的。 PHP陣列的鍵都是數字,那麼json_encode()傳回一個陣列形式的Json,如果PHP陣列的鍵全是字串。那麼json_encode()就會回傳一個物件形式的Json。

#事實上,只要在PHP陣列的鍵中有一個字串形式的鍵,那麼json_encode()就會傳回物件形式的Json。這是不正確的。因為,雖然在PHP程式碼中不會出現錯誤,但如果將這樣的Json傳給JS函數,JS會將此Json當做一個對象,而對像是不可能以數字作為屬性名的。也就是說JS 不知道這是什麼 : user.0.username  (中間是數字零)

推薦學習:php影片教學

以上是如何將PHP數組資料轉換為json的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn