我可以在同一页面上为不同实体混合微数据和JSON-LD吗


9

我的网站正在使用JSON-LD和微数据。

例如,在中BreadcrumbList,我使用了Microdata格式,而对于其他格式(如OrganizationTouristAttraction),则使用了JSON-LD。

是否可以在同一页面上为不同的实体混合使用Microdata和JSON-LD,还是应该只使用一种格式?


Answers:


7

在同一页面上使用不同的语法应该没问题。

但是,它有一个缺点:如果要连接以不同语法指定的实体,则不能嵌套它们。您必须改为使用URI。(但请注意,不一定所有数据使用者都遵循此类URI引用。)

显示嵌套与引用的示例

您可以使用属性将a连接BreadcrumbList到a 。WebPagebreadcrumb

仅使用一种语法时,您可以简单地嵌套项目:

<!-- Microdata only -->
<div itemscope itemtype="http://schema.org/WebPage">
  <div itemprop="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList">
  </div>
</div>
<!-- JSON-LD only -->
<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "WebPage",
  "breadcrumb": 
  {
    "@type": "BreadcrumbList"
  }
}
</script>

但是,如果混合使用语法,则必须指定和引用URI:

<!-- Microdata, giving the entitiy an URI with the 'itemid' attribute -->
<div itemscope itemtype="http://schema.org/BreadcrumbList" itemid="#page-breadcrumbs">
</div>

<!-- JSON-LD, referencing the URI "#page-breadcrumbs" which is specified in the Microdata -->
<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "WebPage",
  "breadcrumb": 
  {
    "@type": "BreadcrumbList",
    "@id": "#page-breadcrumbs"
  }
}
</script>

对于另一个方向,您需要给JSON-LD中的项目一个URI @id,并在例如一个link元素内链接到该URI 。看一个例子。

更多例子

在Stack Overflow的这个答案中链接了多个使用JSON-LD Microdata的示例。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.