📜  PHP | json_encode()函数(1)

📅  最后修改于: 2023-12-03 15:33:34.147000             🧑  作者: Mango

PHP | json_encode()函数

简介

json_encode()是 PHP 5.2.0 以后才有的函数,它用于将 PHP 对象转换成 JSON 格式的字符串。

在 AJAX 开发中,PHP 可以通过 json_encode() 将数组或对象转换成 JSON 格式字符串返回,供前端 JavaScript 使用。

语法
string json_encode(mixed $value [, int $options = 0 [, int $depth = 512]]);

参数说明:

  • $value:必需,要编码成 JSON 格式的值。

  • $options:可选,用于设置编码选项。具体值如下:

    • JSON_FORCE_OBJECT:默认只将关联数组转成 JSON Object,这个参数强制为所有数组都转换成 JSON Object。

    • JSON_HEX_QUOT:所有的双引号都将编码成 \"

    • JSON_HEX_TAG:所有的 <> 转换成 \u003C\u003E

    • JSON_HEX_AMP:所有 & 转换成 \u0026

    • JSON_HEX_APOS:所有的单引号都将编码成 \'

    • JSON_NUMERIC_CHECK:把字符串编码成数字。

    • JSON_PRETTY_PRINT:输出更美观格式化的 JSON。

    • JSON_UNESCAPED_UNICODE:默认只有 ASCII 码字符被编码成 Unicode 八进制形式,这个参数可以全部不编码,即直接输出原字符。

  • $depth:可选,定义对象或数组的嵌套深度。

返回值

json_encode() 函数返回 JSON 格式的字符串,如果出错则返回 false。

示例
示例1
$arr = array("username" => "tom", "age" => 18, "gender" => "male");

echo json_encode($arr);

输出:

{"username":"tom","age":18,"gender":"male"}
示例2
$arr = array("username" => "tom", "age" => 18, "gender" => "male");

echo json_encode($arr, JSON_PRETTY_PRINT);

输出:

{
    "username": "tom",
    "age": 18,
    "gender": "male"
}
注意事项
  1. json_encode() 仅支持 UTF-8 编码的数据。
  2. 如果数组中存在二进制数据,则 json_encode() 无法正确输出。
  3. json_encode() 函数在 PHP 5.2.0 中加入,需要 PHP 5.2.0 及以上版本才能使用。
  4. json_encode() 函数在 PHP 5.5.0 中修补了一个安全漏洞,建议使用 PHP 5.5.0 以上版本。