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

如何通过Contentful API获取关联条目(Linked Entry)的名称?

获取Contentful关联条目名称的方法

要拿到关联条目(比如你提到的「Jennifer Test」)的名称,核心是让API返回关联数据——Contentful默认不会自动展开关联内容,你可以按以下步骤操作:

1. 修改请求URL,添加include参数

Contentful API支持用include参数指定要展开的关联层级(最大可设为10),如果是一级关联,设include=1即可。把你的请求代码改成这样:

let fetchRes = fetch("https://preview.contentful.com/spaces/{space_id}/environments/ca/entries/{entry_id}?access_token=vOKxCDyhU8gLUsU4FR5tgdwQVe3arwfJzFTCloi2sjM&content_type=HorizontalImageCard&include=1");

2. 从返回数据中提取关联条目名称

请求返回的JSON里会新增一个includes字段,里面包含所有关联的条目和资产。你需要:

  • 从主条目中拿到关联对象的sys.id
  • 去includes.Entry(对应关联条目)或includes.Asset(对应关联资产)里匹配对应ID的内容
  • 提取名称字段(字段名取决于你关联的内容类型定义,一般是name或title)

举个实际处理的代码示例:

fetchRes.then(res => res.json()).then(data => {
  // 获取请求到的HorizontalImageCard条目
  const cardEntry = data.items[0];
  // 假设关联字段名为relatedItem,取出它的ID
  const linkedItemId = cardEntry.fields.relatedItem.sys.id;
  // 从includes中找到对应的关联条目
  const linkedEntry = data.includes.Entry.find(item => item.sys.id === linkedItemId);
  // 提取名称(这里假设关联条目的名称字段是name)
  const linkedEntryName = linkedEntry.fields.name;
  console.log(linkedEntryName); // 输出Jennifer Test
});

注意事项

  • 如果关联是多层嵌套的(比如关联条目里还有其他关联),需要把include设为对应层级(比如include=2)
  • 如果关联的是资产,要去includes.Asset里查找,资产的名称一般存在fields.title字段
  • 确认你关联的内容类型的名称字段实际键值,比如有的可能叫displayName,以你Contentful后台的定义为准

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 07:21:24