查詢

json_encode()函式—用法及示例

「 將陣列或物件轉換為JSON格式的字串 」


函式名: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。

示例:

  1. 編碼一個簡單的陣列:
$arr = array('apple', 'banana', 'orange');
$json = json_encode($arr);

echo $json;
// 輸出:["apple","banana","orange"]
  1. 編碼一個關聯陣列,並使用選項進行格式化:
$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"
// }
  1. 編碼一個包含特殊字元的字串:
$str = "This is a \"quoted\" string.";
$json = json_encode($str);

echo $json;
// 輸出:"This is a \"quoted\" string."
  1. 編碼一個包含 Unicode 字元的字串,並禁用 Unicode 轉義:
$str = "Hello, 世界!";
$json = json_encode($str, JSON_UNESCAPED_UNICODE);

echo $json;
// 輸出:"Hello, 世界!"

注意:json_encode() 函式在編碼過程中,會自動將非 UTF-8 編碼的字串轉換為 UTF-8。如果編碼過程中遇到無法轉換的字元,將會返回 false。

補充糾錯
上一個函式: json_last_error()函式
下一個函式: json_decode()函式
熱門PHP函式
分享連結