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

Laravel 8如何提取API返回JSON响应中的title字段值

错误原因

json_decode() 函数默认第二个参数为false,执行后返回的是stdClass类对象,而非关联数组,你使用$data['items']的数组语法访问对象属性,就会触发这个报错。


解决方法

方法1:统一用对象语法访问属性

直接修改name赋值行,把数组访问改为对象属性访问:

$provider = $company->providers()->create([
    'name' => $data->items[0]->title
]);

方法2:让json_decode返回关联数组

给json_decode()传入第二个参数true,解析结果会转为关联数组,原有数组访问语法就可以正常生效:

// 修改json_decode行
$data = json_decode($response->body(), true);

// 后续赋值保持数组语法即可,注意title也要用数组访问
$provider = $company->providers()->create([
    'name' => $data['items'][0]['title']
]);

方法3(Laravel专属更简洁写法)

Laravel的Http响应类自带json()方法,无需手动调用json_decode,直接返回解析后的关联数组:

// 去掉自己写的json_decode行,直接调用json方法
$data = $response->json();

$provider = $company->providers()->create([
    'name' => $data['items'][0]['title']
]);

补充优化建议

即使接口约定固定返回1条items数据,也建议增加存在性判断,避免接口异常返回空结构时触发报错:

// 示例:用optional辅助函数避免报错
'name' => optional($data->items[0] ?? null)->title ?? '默认名称'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 07:54:10