json_decode()默认将JSON字符串转为stdClass对象,需确保UTF-8编码与格式正确,失败返回null;传true可转为关联数组;特殊属性名须用花括号引用。

PHP 中把 JSON 字符串转成对象,用 json_decode() 函数就行,默认就返回对象(stdClass 实例)。
基础写法:转成对象(默认行为)
只要不传第二个参数,或明确传 false,结果就是 PHP 对象:
<?php
$json = '{"name":"张三","age":28,"city":"杭州"}';
$obj = json_decode($json);
echo $obj->name; // 输出:张三
echo $obj->age; // 输出:28
?>
注意编码和错误处理
JSON 字符串必须是 UTF-8 编码,且格式合法。建议检查解码是否成功:
立即学习“PHP免费学习笔记(深入)”;
- 用
json_last_error()判断是否有错(比如中文乱码、缺少引号、尾逗号) - 解码失败时返回
null,所以最好加空值判断 - 常见错误:JSON 中用了单引号、中文标点、BOM 头、非 UTF-8 编码
想转成关联数组?传 true 就行
如果需要数组而不是对象,第二个参数设为 true:
$arr = json_decode($json, true); // 返回 array
echo $arr['name']; // 张三
深层嵌套 JSON 的访问方式
对象支持链式访问,但要注意属性名是否含特殊字符或数字开头:
- 普通字段直接用
->,如$obj->data->list[0]->id - 属性名含短横线(如
"user-name")要用花括号+引号:$obj->{'user-name'} - 属性名是纯数字开头(如
"1st_item"),也得用花括号:$obj->{'1st_item'}



















