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

PHP访问并输出嵌套JSON内serviceQualificationItem字段值的方法

代码失效核心原因

你写的代码拿不到值,是三个核心问题导致的:

  • 调用json_decode时传入了第二个参数true,返回结果是关联数组结构,后续却用对象操作符->访问字段,语法不匹配
  • 遍历起点错误:直接循环整个$package根节点,拿到的都是id、href、地址这类顶层字段,根本没有定位到目标的serviceQualificationItem数组
  • 嵌套路径缺漏+数组未二次遍历:serviceQualificationItem的每个子项下,先嵌套了service层才到serviceSpecification,且最终的serviceSpecificationCharacteristic本身是存储上下行速率的数组结构,不是单值字段,无法直接读取ID。
正确实现代码
// 从上一步逻辑获取地址ID
$addressID = $address->id;
$request2 = wp_remote_get( 'https://pilotapi01.telkom.co.za/gateway/serviceQualification/v1/'.$addressID );
$info = wp_remote_retrieve_body( $request2 );
$package = json_decode( $info , true );

if( !empty( $package['serviceQualificationItem'] ) ) {
    echo '<div class="output-wrapper">';
    // 直接遍历目标服务套餐数组
    foreach( $package['serviceQualificationItem'] as $item ) {
        // 字段判空,避免接口返回异常时抛出警告
        if( empty($item['service']['serviceSpecification']) ) continue;
        $spec = $item['service']['serviceSpecification'];
        ?>
        <div class="package-box">
            <div><b>套餐ID:</b><?php echo $spec['id']; ?></div>
            <div><b>套餐分类:</b><?php echo $spec['serviceCategoryId']; ?></div>
            <div><b>可用状态:</b><?php echo $item['availability']; ?></div>
            <div class="speed-info">
                <b>速率参数:</b>
                <ul>
                <?php
                // 二次遍历速率特征字段
                foreach( $spec['serviceSpecificationCharacteristic'] as $char ) {
                    echo '<li>'.$char['name'].': '.$char['valueto'].'</li>';
                }
                ?>
                </ul>
            </div>
        </div>
        <?php
    }
    echo '</div>';
}
实现说明
  • 全程用数组下标[]访问字段,和json_decode(...,true)返回的关联数组结构完全匹配
  • 直接定位到$package['serviceQualificationItem']作为遍历起点,跳过无关的顶层字段
  • 每一层嵌套都加了空值判断,避免接口返回字段缺失时抛出PHP错误
  • 对serviceSpecificationCharacteristic做二次遍历,完整输出上下行速率等所有特征值
  • 补全了路径中遗漏的service层级,和接口返回的JSON结构完全对应

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 06:57:21