函式名:json_encode()
適用版本:PHP 5 >= 5.2.0, PHP 7
用法:json_encode(mixed $value, int $options = 0, int $depth = 512): string|false
引數:
- $value (必需):要編碼為 JSON 字串的值。可以是任何型別的變數,除了資源型別。
- $options (可選):用於修改編碼過程的選項。預設值為 0。可選的選項有:
- JSON_HEX_QUOT: 所有的雙引號都將轉換為 \u0022。
- JSON_HEX_TAG: 所有的 < 和 > 將轉換為 \u003C 和 \u003E。
- JSON_HEX_AMP: 所有的 & 將轉換為 \u0026。
- JSON_HEX_APOS: 所有的 ' 將轉換為 \u0027。
- JSON_NUMERIC_CHECK: 將所有數字字串轉換為數字型別。
- JSON_PRETTY_PRINT: 使用空白字元格式化編碼後的 JSON 字串。
- JSON_UNESCAPED_SLASHES: 不對斜槓進行轉義。
- JSON_UNESCAPED_UNICODE: 不對 Unicode 字元進行轉義。
- JSON_PARTIAL_OUTPUT_ON_ERROR: 在編碼期間遇到錯誤時,返回部分 JSON 字串。
- $depth (可選):設定遞迴深度。預設值為 512。
返回值:
- 返回編碼後的 JSON 字串,如果編碼失敗則返回 false。
示例:
- 編碼一個簡單的陣列:
$arr = array('apple', 'banana', 'orange');
$json = json_encode($arr);
echo $json;
// 輸出:["apple","banana","orange"]
- 編碼一個關聯陣列,並使用選項進行格式化:
$arr = array('name' => 'John', 'age' => 30, 'city' => 'New York');
$json = json_encode($arr, JSON_PRETTY_PRINT);
echo $json;
// 輸出:
// {
// "name": "John",
// "age": 30,
// "city": "New York"
// }
- 編碼一個包含特殊字元的字串:
$str = "This is a \"quoted\" string.";
$json = json_encode($str);
echo $json;
// 輸出:"This is a \"quoted\" string."
- 編碼一個包含 Unicode 字元的字串,並禁用 Unicode 轉義:
$str = "Hello, 世界!";
$json = json_encode($str, JSON_UNESCAPED_UNICODE);
echo $json;
// 輸出:"Hello, 世界!"
注意:json_encode() 函式在編碼過程中,會自動將非 UTF-8 編碼的字串轉換為 UTF-8。如果編碼過程中遇到無法轉換的字元,將會返回 false。