json_decode()是PHP中用于将JSON字符串转换为PHP变量(数组/对象)的核心函数,其核心特性和用法如下:
基础转换
默认将JSON对象转为PHP的stdClass对象,JSON数组转为PHP索引数组。例如:
$json = '{"name":"John","age":30}';
$obj = json_decode($json); // 转为对象
echo $obj->name; // 输出:John强制数组输出
通过第二参数true可强制返回关联数组:
$arr = json_decode($json, true); echo $arr['name']; // 输出:John
深度控制
第三参数限制递归解析深度(默认512),防止恶意数据导致栈溢出。错误处理
解析失败时返回null,需用json_last_error()定位问题:
if (json_decode('invalid') === null) {
echo "JSON解析错误:" . json_last_error_msg();
}典型应用场景包括处理API响应或前端传输的JSON数据。注意输入必须是合法JSON字符串,非UTF-8编码需预先转换。