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

Hugo中如何通过独立对象的值调用JSON数组特定数据

在Hugo中通过球队ID关联获取球队信息的实现方法

要实现类似JS里通过ID直接索引球队信息的效果,核心是先把teams数组转成以球队ID为键的字典映射,之后遍历赛程时直接通过ID取值即可,具体步骤如下:

  1. 构建球队ID映射字典
    先从数据文件中读取teams数组,循环遍历生成一个键为球队ID、值为完整球队信息的字典。这样后续就能直接用ID快速查找,不用每次都遍历整个teams数组。

示例代码(假设你的数据文件是data/sports.json):

{{ $data := .Site.Data.sports }}
{{ $teamMap := dict }}
{{ range $team := $data.teams }}
  {{ $teamMap = merge $teamMap (dict $team.id $team) }}
{{ end }}
  1. 遍历赛程并关联球队信息
    遍历schedule.week1的每场比赛时,用比赛的home字段(球队ID),通过index函数从之前构建的$teamMap中取出对应球队的信息,用法和JS里的方括号索引完全对应。

示例代码:

{{ range $game := $data.schedule.week1 }}
  <div class="game-item">
    <!-- 获取主场球队名称 -->
    <p>主场:{{ (index $teamMap $game.home).name }}</p>
    <!-- 可以直接取球队其他属性,比如logo、所在赛区 -->
    <img src="{{ (index $teamMap $game.home).logo }}" alt="{{ (index $teamMap $game.home).name }}">
    <p>赛区:{{ (index $teamMap $game.home).division }}</p>
  </div>
{{ end }}
  1. 容错处理(可选)
    如果存在球队ID无效的情况,可以用default函数避免模板报错:
{{ $homeTeam := index $teamMap $game.home | default (dict "name" "未知球队") }}
<p>主场:{{ $homeTeam.name }}</p>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 00:45:59