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

PHP获取Clash Royale API数据后,如何输出JSON指定字段?

问题分析与解决方法

核心问题出在数据类型不匹配上:你在控制器里使用了json_decode($res, true),第二个参数true会把返回的JSON解析成关联数组,但你在视图里却用了对象的->语法来访问属性,这就导致无法正确获取字段。

正确的访问方式(关联数组语法)

因为你已经把JSON转成了关联数组,所以必须用数组索引[]来访问各个层级的字段:

  • 获取第一张卡片的名称:
    {{ $data['items'][0]['name'] }}
    
  • 获取第一张卡片的图标地址:
    {{ $data['items'][0]['iconUrls']['medium'] }}
    

遍历所有卡片的示例

如果要展示所有卡片数据,可以在视图里用@foreach循环遍历数组:

@foreach($data['items'] as $card)
    <div class="card-item">
        <h4>{{ $card['name'] }}</h4>
        <p>卡片ID: {{ $card['id'] }}</p>
        <p>最高等级: {{ $card['maxLevel'] }}</p>
        <img src="{{ $card['iconUrls']['medium'] }}" alt="{{ $card['name'] }} 图标">
    </div>
@endforeach

可选方案:改用对象语法

如果你更习惯用->访问属性,可以修改控制器里的json_decode调用,去掉第二个参数(或者设为false),这样会把JSON解析成对象:

// 修改这一行
$data = json_decode($res); // 去掉true参数,默认返回对象

此时视图里就可以用对象语法访问:

{{ $data->items[0]->name }}
{{ $data->items[0]->iconUrls->medium }}

两种方式二选一即可,只要保持数据类型和访问语法一致就没问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 16:22:43