语法正确&;在JSON-LD中使用SiteNavigationElement

语法正确&;在JSON-LD中使用SiteNavigationElement,navigation,schema.org,json-ld,Navigation,Schema.org,Json Ld,现在,在网上读了几篇文章后,我终于弄糊涂了。我有一个带有多个子类别的主导航。发现2个示例,然后我停止b/c,我感到困惑 例1: { “@context”:”http://schema.org", “@type”:“ItemList”, “itemListElement”:[ { “@type”:“SiteNavigationElement”, "立场":一,, “姓名”:“注册”, “说明”:“创建您的示例配置文件”, “url”:”https://example.com" }, { “@typ

现在,在网上读了几篇文章后,我终于弄糊涂了。我有一个带有多个子类别的主导航。发现2个示例,然后我停止b/c,我感到困惑

例1:

{
“@context”:”http://schema.org",
“@type”:“ItemList”,
“itemListElement”:[
{
“@type”:“SiteNavigationElement”,
"立场":一,,
“姓名”:“注册”,
“说明”:“创建您的示例配置文件”,
“url”:”https://example.com"
},
{
“@type”:“SiteNavigationElement”,
"立场":二,,
“姓名”:“关于我们”,
“说明”:“阅读更多关于示例公司的信息”,
“url”:”https://example.com/about"
},
{......
例2:

{
“@context”:”https://schema.org",
“@graph”:
[
{
“@context”:”https://schema.org",
“@type”:“SiteNavigationElement”,
“@id”:“#目录”,
“名称”:“第1节”,
“url”:”https://www.example.com/page#toc-1"
},
{
“@context”:”https://schema.org",
“@type”:“SiteNavigationElement”,
“@id”:“#目录”,
“名称”:“第2节”,
“url”:”https://www.example.com/page#toc-2"
},
{....

这两种用法的区别是什么?它们都是有效的,但无法决定采用哪种用法。

示例1由一个带有两个
SiteNavigationElement
元素的
ItemList
组成。
示例2由两个
SiteNavigationElement
元素组成(两个元素相同,因为它们具有相同的
@id
值)

我想说,这两种说法都不符合你想要表达的意思

SiteNavigationElement
类型表示整个导航,而不是单个导航链接()

{
“@context”:”http://schema.org",
“@type”:“SiteNavigationElement”,
“名称”:“主导航”
}

如果您想提供关于每个导航链接的数据,您可以考虑使用另一个导航链接,其中每个链接可以是(指定的)。

{
“@context”:”http://schema.org",
“@type”:[“SiteNavigationElement”,“ItemList”],
“名称”:“主导航”,
“itemListElement”:[
{@type:“网页”},
{@type:“网页”},
{@type:“网页”}
]
}

不应超过1个“项目列表”在同一个页面上,因此在导航栏上可以防止它出现在页面上的任何其他位置。我认为这不是正确的结构。@sanchy:Schema.org没有这样的要求。有很多用例需要多个
ItemList
项。也许你指的是谷歌SDTT中的一个错误,但请注意这不是Schema.org validator——这些错误指的是谷歌特定的功能(如果你不能满足谷歌的要求,你就得不到该功能——其他什么都不会发生)。对于任何想寻求答案的人,我想强调一下->“如果你不能满足谷歌的要求,你就得不到该功能”.Structured data testing tool明确指出,同一页面上的ItemList不应超过1个。这意味着,如果将其用于主导航,则不会将其用于整个网站任何页面上的任何其他内容。