当前位置: 首页 > 面试题库 >

如何结合几个JSON-LD标记?

危卜鹰
2023-03-14
问题内容

我发现新手很难将几个或几个JSON-LD标记合并在一起。你能告诉我我在做什么错吗?

当我在Google结构化数据测试工具中输入以下标记时,它仅显示Organization架构类型的结果,同时也显示架构类型的结果BreadcrumbList

<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Organization",
"legalName": "Example INC",
"logo": "https://www.example.com/image.png",
"url": "https://www.example.com/",
"sameAs": [
"https://www.facebook.com/example",
"https://www.linkedin.com/company/example",
"https://twitter.com/example",
"https://www.youtube.com/user/example",
"https://en.wikipedia.org/wiki/example"
]
}
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": "1",
"item": {
"@id": "https://www.example.com/",
"name": "Homepage" 
}
}
]
</script>

问题答案:

要指定多个顶级项目,您可以使用三个选项:

数组

<script type="application/ld+json">
[
  {
     "@context": "http://schema.org",
     "@type": "Organization"
  },
  {
     "@context": "http://schema.org",
     "@type": "BreadcrumbList"
  }
]
</script>

缺点:您必须@context为每个项目重复此操作。

@graph

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@graph": 
  [
    {
       "@type": "Organization"
    },
    {
       "@type": "BreadcrumbList"
    }
  ]
}
</script>

多个script要素

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Organization"
}
</script>

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "BreadcrumbList"
}
</script>

缺点:您必须为每个项目重复script元素和@context

但是通常最好只提供一个顶级项,并将其他项嵌套在适当的属性下。不过,这并非在所有情况下都可行。

在您的情况下,似乎可以通过添加WebPage项目来实现,假设它是组织的页面,并且此页面具有以下面包屑列表:

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "WebPage",
  "provider": 
  {
    "@type": "Organization"
  },
  "breadcrumb": 
  {
    "@type": "BreadcrumbList"
  }
}
</script>

(您可以在不嵌套的情况下实现相同效果:使用,为每个项目提供一个URI
@id,然后将这些URI作为属性值引用。)



 类似资料:
  • 我有一个测试Web服务项目,我在其中使用REST(泽西)JSON Spring。问题是我不知道如何将它们组合在一起。例如,我有一个have类,它可以与数据库一起使用: 我还有一个JSON类,它获取并返回JSON中的对象: 现在我试着把它们结合起来。我想从DB中获取数据,并将其转换为JSON,然后在响应中返回: 当我用最后一个组合开始项目时,我得到了这个错误: 我的pom.xml: My web.x

  • 据我所知,有一些方法可以根据RDF模式验证序列化的RDF(例如RDF/XML)(如何用您的RDF模式验证RDF)。还有,从RDF/XML到JSON-LD序列化格式的各种转换器(反之亦然)。在Internet上搜索,我找不到一种直接的方法来验证JSON-LD与某种JSON模式的关系,就像RDF模式与RDF(/XML)的关系一样。当然,有各种各样的JSON-LD文档表单,所以我假设一个模式不能很容易地

  • 问题内容: 我在面包屑跟踪中使用结构化数据。我指的是此文档: https://developers.google.com/structured- data/breadcrumbs 我已经建立了一个面包屑列表。我还会显示引用当前页面的最后一项,但这不是链接,而只是纯文本。这是我的HTML标记的样子: 我已选择使用标记面包屑痕迹。我不确定面包屑列表中的最后一个不是链接,因此如何确定该标记呢?我应该放弃

  • 问题内容: 情况: 用户想使用Youtube的JSON API在JQuery网站中导入Youtube播放列表。 问题: Youtube仅返回前50个条目,但是播放列表的长度可能超过100个条目(长度由JSON响应中的“ totalItems”给出)。所有条目都需要合并为1个对象,最后需要将其推入到输出函数中。 条目1-50:http : //gdata.youtube.com/feeds/api/

  • 我希望通过一个Thymeleaf变量数组来生成JSON-LD(使用Schema.org),类似于Google的商店部门示例。 我知道您可以在HTML中遍历Thymeleaf中的数组,如下所示: 有没有办法将其转换为JSON-LD格式?

  • 我有一个项目数组,我想做这样的东西: 但如果我这样做,我会得到一个JSXTTransformer错误: 相邻的XJS元素必须包装在一个封闭标签中 工作版本: 我试过这个。但是用