【问题标题】:Display contents of child tags in contentful api在内容 api 中显示子标签的内容
【发布时间】:2016-12-20 19:27:59
【问题描述】:

我是内容 API 的新手。当我输入用于检索 0 级标记条目(内容类型)的 url 时,我创建了链接标记。我正在获取子元素 id

fields": {
"level0Tag": "Problem Solving",
"level1ChildTags": [
  {
    "sys": {
      "type": "Link",
      "linkType": "Entry",
      "id": "4uKXvRK0veAoEuk2yAuQ2Y"
    }
  },
  {
    "sys": {
      "type": "Link",
      "linkType": "Entry",
      "id": "3QMVgykrBey8KQ2SOw8CU6"
    }
  }
],
"displayChildTags": true

我想获取1级子标签的名称字段如何获取?

【问题讨论】:

  • 我在这里看不到name 字段;我的视力还完好吗?
  • 这是一个询问如何解析 json 字符串的问题吗?如果是,您使用的是什么语言?
  • 实际上没有与 level0tag 链接的 level1childtags 将名称作为一个字段目前我只得到它的 id 如何获取该特定字段
  • 实际上我正在使用内容 api,它被配置为 level0tag 具有 level1childtag 的相关内容我目前只获取它的 id 如何获取 level1tag 中包含的字段名称
  • 那么你的意思是JSON字符串应该包含一个name标签,而不仅仅是id、type和linkType?请问我理解你的问题了吗?

标签: json contentful


【解决方案1】:

当您检索链接的条目或资产时,您得到的是具有 sys 属性的对象,该属性包含与链接类型相关的元数据(在您的情况下,它告诉您它是一个条目并包含 ID)。此外,在 JSON 响应的顶层,您应该获得一个“包含”属性,其中包含一个包含所有链接资产的数组。

默认情况下,API 会解析 1 级的链接。如果您想要多个级别(或没有级别),您可以使用“include”查询字符串参数(例如 include=2)。

如果您使用其中一种 SDK,例如 Javascript SDK,它们会在响应中为您解析这些链接并将它们替换为实际对象,但默认情况下 REST API 不会这样做。

另外请注意,这只发生在您查询集合端点(例如 /entries)时,而不是针对单个项目端点(例如 /entries/id)。

更多信息请查看https://www.contentful.com/developers/docs/concepts/links/https://www.contentful.com/developers/docs/references/content-delivery-api/#/reference/entries/entry/query-entries?console=1

【讨论】:

【解决方案2】:

如以下页面所述,您可以使用include 请求参数指定级别,以在对查询的响应中获取链接的条目或资产,然后您将在@987654324 中找到链接的条目和资产@ 和 includes.Asset 响应的属性。

https://www.contentful.com/developers/docs/concepts/links/

如果您碰巧使用了 JavaScript SDK,它可以让您按照预期透明地实际导航关系图(将链接替换为实际包含的资源)。

https://github.com/contentful/contentful.js

【讨论】:

    【解决方案3】:

    我最初尝试使用getEntry,但正如文档所说,这不会加载链接的内容。这是我改用的:

    function getOneNewsItemFromCMS(uid, callback) {
        // Using getEntries rather than getEntry ensures that we get linked items too
        client().getEntries({ 'sys.id': uid })
            .then(function (entries) {
                const item = processContentfulNewsItems(entries.items)[0];
                callback(item);
            });
    }  
    

    processContentfulNewsItems 函数将 Contentful 返回的 JSON 格式映射到我的 React 对象所期望的格式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-26
      • 1970-01-01
      • 2011-09-28
      • 2018-03-09
      • 2022-01-18
      • 1970-01-01
      相关资源
      最近更新 更多