📜  json_decode (1)

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

json_decode介绍

简介

在 PHP 中,json_decode() 函数用于将 JSON 字符串解析成 PHP 变量。它接受一个有效的 JSON 字符串并返回对应的 PHP 变量。

语法
mixed json_decode ( string $json [, bool $assoc = FALSE [, int $depth = 512 [, int $options = 0 ]]] )
参数
  • $json:必需,要解码的 JSON 字符串。

  • $assoc:可选,当该参数为 true 时,返回对象将转换为关联数组。

  • $depth:可选,设置最大深度。默认值为 512。

  • $options:可选,JSON 解码选项,可以是以下常量的任意组合:

    • JSON_BIGINT_AS_STRING:将大整型数字解码为字符串。
    • JSON_INVALID_UTF8_IGNORE:忽略无效的 UTF-8 字符。
    • JSON_INVALID_UTF8_SUBSTITUTE:将无效的 UTF-8 字符替换为 U+FFFD (编码后的字符是 EF BF BD)。
    • JSON_OBJECT_AS_ARRAY:将对象解码为关联数组。
    • JSON_THROW_ON_ERROR:在错误时抛出异常。
返回值

json_decode() 函数返回解码后的 PHP 变量。如果解码失败则返回 null

示例

解析 JSON 字符串:

$json_string = '{"name":"张三","age":22}';
$data = json_decode($json_string);

解析后,$data 变量的值是一个对象:

{
    "name": "张三",
    "age": 22
}

设置 $assoc 参数为 true,将返回一个关联数组:

$json_string = '{"name":"张三","age":22}';
$data = json_decode($json_string, true);

解析后,$data 变量的值是一个关联数组:

{
    "name": "张三",
    "age": 22
}

设置 $options 参数为 JSON_OBJECT_AS_ARRAY,将把对象解码为关联数组:

$json_string = '{"name":"张三","age":22}';
$data = json_decode($json_string, false, 512, JSON_OBJECT_AS_ARRAY);

解析后,$data 变量的值是一个关联数组:

{
    "name": "张三",
    "age": 22
}
注意事项
  • 如果 JSON 字符串中包含特殊字符,例如斜杠,需要使用双反斜杠对其进行转义。
  • 如果使用了 JSON_THROW_ON_ERROR 选项,需要使用 try...catch 块来捕捉异常。