头部重复JSON-LD脚本

时间:2017-08-25 07:59:18

标签: html json-ld structured-data

我必须将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>

是吗?

1 个答案:

答案 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以及有关组织的信息。)