如何将JSON-LD和微数据与itemid结合在一起?

时间:2018-12-21 13:28:20

标签: schema.org microdata json-ld structured-data

我想将两种结构化数据联系在一起:WebPage(是JSON-LD)和BreadcrumbList(是内联微数据)。

主题不是重复的!我在SO上看到了许多类似的答案,但是我使用Google Structured Data Test工具测试了每个人,没有一个答案得到有效测试。

代码示例为:

<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Webpage",
"id": "https://www.example.com#Webpage",
"breadcrumb": {
"@type": "BreadcrumbList",
"@id": "https://www.example.com#BreadcrumbList"
}
}
</script>
<nav class="breadcrumbs">
<ol itemscope itemtype="http://schema.org/BreadcrumbList" itemid="https://www.example.com#BreadcrumbList">
<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<a itemprop="item" rel="up up up" title="a" href="/a/">
<span itemprop="name">a</span></a>
<meta itemprop="position" content="1" /></li>
<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<a itemprop="item" rel="up up" title="b" href="/b/">
<span itemprop="name">b</span></a>
<meta itemprop="position" content="2" /></li>
<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<a itemprop="item" rel="up" title="c" href="/c/">
<span itemprop="name">c</span></a>
<meta itemprop="position" content="3" /></li>
</ol>
</nav>

正如我所说,WebPage是JSON-LD代码段中的主要数据类型。它具有辅助数据类型BreadcrumbList,该数据类型具有ID。微数据中的BreadcrumbList与JSON-LD中的itemid相关联-我希望测试工具能够显示JSON-LD的BredcrumbList与微数据中的ItemList之间的关系。但不是:测试工具将它们显示为不同,并因为不需要<script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Webpage", "id": "https://www.example.com#Webpage", "breadcrumb": { "@type": "BreadcrumbList", "@id": "https://www.example.com#BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "id": "https://www.example.com#ListItem" } ] } } </script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "ListItem", "id": "https://www.example.com#ListItem", "position": "1", "item": { "@id": "https://www.example.com/item1", "name": "name1" } } } </script> 而在JSON-LD代码段中触发错误。

这是测试工具的错误还是我遗漏了一些实质性内容?

PS :按预期验证了仅在JSON-LD上构建的相同构造:

.example

1 个答案:

答案 0 :(得分:1)

我已经解决了这个问题大约一个月了;它很快就消失了。

因此,JSON + LD只是linked data的容器。我认为您的问题是在“您可以混合使用微格式吗”领域,即:架构,RDFa,微数据..答案是Yes

我为Google使用json + ld格式的顶级链接定义;诸如组织,localBusiness等有点抽象的事物,然后进一步深化,我将RDFa / Microdata内联用于页面元素。面包屑,标题,电话等内容。

Google支持每种微格式(JSON-LD带有preference),并且mixing Attributes似乎没有任何冲突,只要数据链接为consistent并且语法有效。因此您可以使用适合代码结构的内容。

因此,根据Google开发人员文档和优秀的开发人员的说法,您的代码示例是一种有效的方法,截至2019年,创建此方法将创建一个有效的页面。它使开发变得更加容易。