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 参数。