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

多层嵌套JSON数据获取问题:API返回分类字段无值显示求助

解决API JSON中Category字段无法显示的问题

我碰到过很多类似的场景,结合你的代码和API返回JSON的常见情况,大概率是以下几个原因导致Category字段无法正常显示,咱们一步步排查:

1. 先确认Category的结构是对象还是数组

从你写的$products->info->category->name来看,你默认category是一个对象,但很多API会把分类返回成数组(比如category: [{name: "XXX"}]),这时候直接访问->name就会出问题。

你可以先在循环里加一行调试代码,看看category的实际结构:

// 在foreach循环里临时添加,查看category结构
var_dump($products->info->category);

如果输出是数组,那你需要改成数组的访问方式:

<td class=" ">
    <?php echo isset($products->info->category[0]->name) ? $products->info->category[0]->name : '未分类'; ?>
</td>

2. 检查字段名的大小写是否匹配

JSON的键名是大小写敏感的!比如API返回的可能是Category而不是category,或者Name而不是name,这时候你访问的字段根本不存在,自然显示为空。

你可以打印整个产品数据来确认:

print_r($products->info);

根据实际返回的键名调整代码里的字段名。

3. 处理分类为空或不存在的情况

有些产品可能没有设置分类,这时候直接访问$products->info->category->name会触发PHP错误,导致页面异常或者显示空白。建议加上存在性判断:

<td class=" ">
    <?php 
        $categoryName = '未分类';
        if (isset($products->info->category) && isset($products->info->category->name)) {
            $categoryName = $products->info->category->name;
        }
        echo $categoryName;
    ?>
</td>

4. 确认JSON解析方式是否正确

如果你是用json_decode()解析API返回的JSON,要注意第二个参数:如果设为true会返回数组,这时候你需要用数组下标访问而不是对象属性:

// 如果是数组结构
echo $products['info']['category']['name'];

如果是默认的false,才是对象访问方式,这点要对应上。

先试试这些方法,应该能解决你的问题!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:43:02