PHP json_decode() 函数
定义和用法
json_decode()
函数用于将 JSON 对象解码或转换为 PHP 对象。
实例
例子 1
将 JSON 数据存储在 PHP 变量中,然后将其解码为 PHP 对象:
<?php
$jsonobj = '{"Bill":35,"Elon":37,"Steve":43}';
var_dump(json_decode($jsonobj));
?>
例子 2
将 JSON 数据存储在 PHP 变量中,然后将其解码为 PHP 关联数组:
<?php
$jsonobj = '{"Bill":35,"Elon":37,"Steve":43}';
var_dump(json_decode($jsonobj, true));
?>
例子 3
如何从 PHP 对象中访问值:
<?php
$jsonobj = '{"Bill":35,"Elon":37,"Steve":43}';
$obj = json_decode($jsonobj);
echo $obj->Bill;
echo $obj->Elon;
echo $obj->Joe;
?>
例子 4
如何从 PHP 关联数组中访问值:
<?php
$jsonobj = '{"Bill":35,"Elon":37,"Steve":43}';
$arr = json_decode($jsonobj, true);
echo $arr["Bill"];
echo $arr["Elon"];
echo $arr["Steve"];
?>
语法
json_decode(string, assoc, depth, options)
参数 | 描述 |
---|---|
string | 必需。指定要解码的值。 |
assoc |
可选。指定一个布尔值。默认是 false。 当设置为 true 时,返回的对象将被转换为关联数组。 当设置为 false 时,它返回一个对象。 |
depth | 可选。指定递归深度。默认递归深度为 512。 |
options | 可选。指定位掩码(JSON_BIGINT_AS_STRING、JSON_INVALID_UTF8_IGNORE、JSON_INVALID_UTF8_SUBSTITUTE、JSON_OBJECT_AS_ARRAY、JSON_THROW_ON_ERROR) |
技术细节
返回值: |
以适当的 PHP 类型返回 JSON 编码的值。 如果 JSON 对象无法解码,则返回 NULL。 |
---|---|
PHP 版本: | 5.2+ |
PHP 更新日志:
PHP 7.3:添加了 JSON_THROWN_ON_ERROR 选项。
PHP 7.2:添加了 JSON_INVALID_UTF8_IGNORE 和 JSON_INVALID_UTF8_SUBSTITUTE 选项。
PHP 5.4:添加了 JSON_BIGINT_AS_STRING 和 JSON_OBJECT_AS_ARRAY 选项。
PHP 5.4:添加了 options 参数。
PHP 5.3:添加了 depth 参数。