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

如何在Laravel5中查询Guzzle返回的嵌套对象并获取单个数据

Laravel Guzzle返回数据遍历解决方案

1. 先确认Guzzle响应解析逻辑

你需要先将Guzzle返回的JSON响应体转换为可访问的对象或数组,示例处理代码:

$client = new \GuzzleHttp\Client();
$response = $client->get('你的接口地址');
// 解析为对象(对应你原来的->访问方式)
$data = json_decode($response->getBody());
// 若想使用数组访问,可改为:
// $data = json_decode($response->getBody(), true);

2. 调整Blade遍历代码

你原有写法的问题在于:返回数据的items数组存放在顶层people属性下,直接遍历$data只会获取到唯一的people元素,无法遍历到单条人员数据。

对象访问写法(匹配你原来的使用习惯)

<ul>
    @foreach($data->people->items as $item)
        <li>
            姓名:{{ is_object($item->name) ? reset((array)$item->name) : $item->name }}<br>
            年龄:{{ $item->stats->age }}<br>
            身高:{{ $item->stats->height }}<br>
            链接:{{ $item->link }}
        </li>
    @endforeach
</ul>

数组访问写法(如果你解析时加了第二个true参数)

<ul>
    @foreach($data['people']['items'] as $item)
        <li>
            姓名:{{ is_array($item['name']) ? reset($item['name']) : $item['name'] }}<br>
            年龄:{{ $item['stats']['age'] }}<br>
            身高:{{ $item['stats']['height'] }}<br>
            链接:{{ $item['link'] }}
        </li>
    @endforeach
</ul>

补充说明

你提供的返回JSON中name字段结构不符合标准JSON格式("name":{"William"}缺少键名),如果实际返回中name为直接的字符串值,可直接输出{{ $item->name }},不需要额外的类型判断转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:39:01