求助:如何使用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
相关产品推荐
相关产品推荐

