我必须将JSON-LD数据的多个script
元素注入我的应用程序的head
,所有这些元素都属于同一个@type
。这是因为从不同的数据源中提取了不同的字段。
这种重复是否会导致任何问题?
<script type="application/ld+json">
{
"@type": "Organisation",
"name": "John Smith"
}
</script>
<script type="application/ld+json">
{
"@type": "Organisation",
"city": "London"
}
</script>
我希望Google能够简单地将其翻译为:
<script type="application/ld+json">
{
"@type": "Organisation",
"name": "John Smith",
"city": "London"
}
</script>
是吗?
答案 0 :(得分:1)
消费者不能/不应该假设这些JSON对象描述了同样的事情。 (想想一个包含许多不同组织信息的网页:假设他们是同一个组织当然是错误的。)
JSON-LD允许您指定不同对象中描述的内容相同:为它们赋予相同的@id
值。
@id
采用IRI作为标识符(useful to provide them for many reasons)。
请参阅JSON-LD规范中的Node Identifiers。
所以它看起来像这样(使用Schema.org而不是自定义词汇表):
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Organization",
"@id": "/organizations/42#this",
"name": "ACME"
}
</script>
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Organization",
"@id": "/organizations/42#this",
"description": "…"
}
</script>
(相对网址/organizations/42#this
代表组织本身。最佳做法是在/organizations/42
下提供此JSON-LD以及有关组织的信息。)