You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:如何使用PHP解析嵌套JSON中的特定值

解决PHP解析JSON文件的问题

我帮你梳理下代码里的几个关键问题,马上就能搞定:

你的代码里的核心错误:

  • 读取JSON文件方式错误:require()是用来加载PHP脚本的,JSON文件不是合法PHP代码,直接用它会报错,应该用file_get_contents()读取文件内容
  • 变量拼写错误:遍历的时候你写了foreach ($ar as $arr),但之前定义的数组变量是$arr,这里的$ar是未定义的,完全搞混了变量名
  • 遍历层级错误:你的JSON结构外层是包含objects数组的对象,所以要遍历的是$arr['objects']这个数组,而不是整个$arr
  • 字符串连接运算符错误:PHP里字符串拼接用.,而不是+(+是数字加法)

修正后的完整代码:

// 读取JSON文件内容
$jsonContent = file_get_contents('blogtest.json');
// 解码JSON为关联数组
$arr = json_decode($jsonContent, true);

// 先检查objects是否为有效数组,避免报错
if (isset($arr['objects']) && is_array($arr['objects'])) {
    // 遍历objects里的每个元素
    foreach ($arr['objects'] as $item) {
        // 输出name,用.连接字符串
        echo $item['name'] . "<br>";
        // 如果需要输出url可以加上这行
        // echo $item['url'] . "<br>";
    }
}

额外提示:

  • 解码后先判断$arr['objects']是否存在且是数组,能避免因为JSON结构意外变化导致的报错
  • 如果运行时提示找不到文件,记得检查blogtest.json的相对路径是否正确,或者改用绝对路径

内容的提问来源于stack exchange,提问作者John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:31:24