PHP JSON 教學範例

JSON 為目前網路資料傳輸領域最常使用的「資料交換格式」,也是伺服語言(PHP)與 JavaScript 使用 AJAX 作為資料交換的主要方式。本篇文章將以範例說明如何使用 PHP 處理 JSON。
如對 JSON 不了解,建議先閱讀 JSON 格式與 JavaScript 解析教學範例
json_encode()
語法說明
描述
使用該函式將 PHP 陣列(Array)和物件(Object),編碼成 JSON 字串。
語法
參數
名稱 | 說明 | |
---|---|---|
value |
待編碼的值,除了 resource 類型外,可以為任何資料類型(須為 UTF-8) | |
options |
JSON_HEX_TAG |
所有的 < 和 > 轉換成 \u003C 和 \u003E |
JSON_HEX_AMP |
所有的 & 轉換成 \u0026 | |
JSON_HEX_APOS |
所有的 ‘ 轉換成 \u0027 | |
JSON_HEX_QUOT |
所有的 ” 轉換成 \u0022 | |
JSON_FORCE_OBJECT |
編碼的值不是「關聯式陣列」時,輸出一個 JSON 物件,而不是陣列 | |
JSON_NUMERIC_CHECK |
將所有數值字串編碼成 JSON 數值(將可表示為數值的字串自動轉換成數值) | |
JSON_BIGINT_AS_STRING |
將大數值編碼成原始字符原來的值 | |
JSON_PRETTY_PRINT |
用空白字符格式化返回的資料 | |
JSON_UNESCAPED_SLASHES |
不要編碼 / | |
JSON_UNESCAPED_UNICODE |
以字面編碼多字節 Unicode 字符(預設是編碼成 \uXXXX) |
返回值
編碼成功返回一個以 JSON 格式表示的字串,或者在失敗時返回 false
。
PHP 陣列編碼成 JSON
PHP 支持兩種陣列:
- 索引陣列(Indexed Array):只保存值(Value),使用數值(Number)索引參考。
- 關連式陣列(Associative Array):保存「鍵 / 值對」(Key / Value),使用字串(String)索引參考。
索引陣列編碼成 JSON
json_encode()
函式會將 PHP 索引陣列編碼成 JSON 的陣列格式:
關連式陣列編碼成 JSON
json_encode()
函式會將 PHP 關連式陣列編碼成 JSON 的物件格式:
因為 JavaScript 陣列的 Key 必須是數值,所以才會編碼成物件
PHP 物件編碼成 JSON
指定 json_encode() 編碼格式
PHP 會自動轉換型別,所以有些數值(Number)型態資料可能會被存成字串(例如使用 PDO 從資料庫取得的資料),如果希望將數值字串編碼成 JSON 數值,可指定參數 JSON_NUMERIC_CHECK
:
另外 PHP 索引陣列預設會被編碼成 JSON 的陣列格式,如要強制編碼成物件時,可指定參數 JSON_FORCE_OBJECT
:
JSON 物件名稱則以 "0"、"1" 表示
json_decode()
語法說明
描述
使用該函式將 JSON 格式的字串進行解碼,轉換為 PHP 變數。
語法
參數
名稱 | 說明 |
---|---|
json |
待解碼的 JSON 字串格式 |
assoc |
參數為 true 時,將解碼後的 PHP 物件轉換為關連式陣列(預設值 false ,不轉換) |
depth |
允許遞迴的最大深度(預設;最多 512) |
返回值
返回 JSON 字串在相應 PHP 類型的值。
JSON 轉換為 PHP 物件
JSON 轉換為 PHP 關連式陣列
參考

本著作係採用創用 CC 姓名標示-相同方式分享 3.0 台灣 授權條款授權.
請問可以轉載嗎?會註明原網址
可以的,謝謝~
文章寫的真好。
就是能不能加上我的JSON在線網站,好難呀 https://www.jsonformatting.com/
=口=
謝謝~
但看不太懂您的意思。