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

PHP解码JSON文件无输出问题求助

解决PHP解码JSON无输出的问题

你遇到的无输出问题,大概率是几个小细节没注意到,咱们一步步来排查解决:

1. 先修正print_r的使用方式

你代码里的print_r($json, true),第二个参数设为true时,这个函数会把输出内容作为字符串返回,而不是直接打印到页面。所以要让内容显示出来,要么去掉第二个参数,要么用echo包裹:

// 方式一:去掉第二个参数,直接打印
print_r($json);

// 方式二:用echo输出返回的字符串
echo print_r($json, true);

2. 检查JSON文件是否被正确读取

先确认file_get_contents有没有成功获取到文件内容——比如文件路径是否正确(相对路径是相对于当前PHP脚本的执行位置,不是网站根目录),或者文件权限是否允许PHP读取。可以加个简单的判断:

$str = file_get_contents('llt_stops.json');
if ($str === false) {
    die('无法读取JSON文件,请检查文件路径或权限');
}

3. 排查JSON解码失败的可能

即使你提供的JSON格式是正确的,实际文件可能存在隐藏字符、编码问题导致解码失败,此时json_decode会返回null。可以用json_last_error()来获取具体错误信息:

$json = json_decode($str, true);
if (json_last_error() !== JSON_ERROR_NONE) {
    die('JSON解码失败:' . json_last_error_msg());
}

4. 正确遍历站点数据

如果解码成功,你的JSON结构里,站点数据是存在$json['stops']这个数组里的,所以foreach要遍历这个子数组,而不是整个$json:

foreach ($json['stops'] as $stop) {
    echo "站点ID:{$stop['id']},名称:{$stop['name']},LocID:{$stop['locId']}<br>";
}

完整测试代码

把以上步骤整合起来,你可以用这段代码来测试:

$str = file_get_contents('llt_stops.json');
if ($str === false) {
    die('无法读取JSON文件,请检查文件路径或权限');
}

$json = json_decode($str, true);
if (json_last_error() !== JSON_ERROR_NONE) {
    die('JSON解码失败:' . json_last_error_msg());
}

// 打印整个解码后的数组
print_r($json);

// 遍历并输出每个站点信息
echo '<hr>';
foreach ($json['stops'] as $stop) {
    echo "站点ID:{$stop['id']},名称:{$stop['name']},LocID:{$stop['locId']}<br>";
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:38:40