📅  最后修改于: 2023-12-03 15:02:26.205000             🧑  作者: Mango
在 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_THROW_ON_ERROR
选项,需要使用 try...catch 块来捕捉异常。