PHP json数据解析
PHP 处理 JSON 就两个函数,一个拆一个拼,记住就够用了。
json_decode 把接口给你的 JSON 字符串拆成 PHP 能用的数据。第二个参数写 true,出来是数组,取值方便;不写,出来是对象,得用箭头取。
$str = '{"name":"张三","age":18,"skill":["PHP","MySQL"]}';
// 第二个参数 true 转成数组
$arr = json_decode($str, true);
echo $arr['name']; // 张三
echo $arr['skill'][0]; // PHP
// 不传 true 就是对象
$obj = json_decode($str);
echo $obj->age; // 18
反过来把数组拼成 JSON 字符串用 json_encode,自己写接口返回数据就靠它。
$data = ['code' => 0, 'msg' => '成功', 'list' => ['a', 'b']];
// JSON_UNESCAPED_UNICODE 让中文原样输出,不然变成 \u5f20 这种
$json = json_encode($data, JSON_UNESCAPED_UNICODE);
echo $json;
踩过的坑:解析失败返回 null,用 json_last_error() 看错误码才知道为啥;JSON 里只能用双引号,手写的时候写成单引号必定挂;从接口拿到的字符串前后带 BOM 或者空格也会解析失败,先 trim 一下再拆。
说点什么 0