扫盲 2026.10.02 18:03 47 次浏览 0 条评论

PHP json数据解析

PHP 里搞 JSON 就俩函数:json_decode 和 json_encode。前者把 JSON 字符串变成 PHP 能用的数据,后者反过来。

解码时第二个参数一定写 true,不然返回的是对象,取值还得用箭头,容易懵。

<?php
// JSON 字符串转数组
$str = '{"name":"阿强","age":18,"skill":["php","mysql"]}';
$arr = json_decode($str, true); // true = 返回关联数组
echo $arr['name'];      // 阿强
echo $arr['skill'][1];  // mysql

// 数组转 JSON,中文别被转成 \uXXXX
$data = ['city' => '北京', 'user' => '阿强'];
echo json_encode($data, JSON_UNESCAPED_UNICODE);

// 解析失败先查错,别干瞪眼
$bad = json_decode('{name:1}', true);
if (json_last_error() !== JSON_ERROR_NONE) {
    echo json_last_error_msg(); // 告诉你哪儿坏了
}
?>

踩坑点:JSON 的键必须用双引号,单引号直接解析失败;文件开头有 BOM 头也会挂,报错看着莫名其妙。嵌套三层以上就用 foreach 一层层剥,遇到 is_array 就继续往下走。

说点什么 0

行思随记

欢迎来到:行思随记