我应该在 JSON-LD 结构化数据中同时包含 @id 和 @type 用于节点引用吗?

问题描述

在创建节点引用以避免重复做同样的事情时,我是否需要只指定@id 或同时指定@id 和@type?

例如,对于品牌描述,如果主页上使用的 JSON-LD 是:

"brand": {
      "@type": "Brand","@id": "https://example.com/#brand","name": "Brand Name","description": "Brand description"
      "url": "https://example.com/","sameAs": ["link1","link2","link3"]
    }

那么以下哪项是在产品页面上引用品牌的正确方式?

选项 1:

"brand": {
      "@type": "Brand","@id": "https://example.com/#brand"
    }

选项 2:

"brand": {
      "@id": "https://example.com/#brand"
    }

选项 3:

"brand": "https://example.com/#brand"

解决方法

您只需要指定@id,其他参数就会合并到一个实体中。

如果我引用不同页面上的实体,我通常会添加一些额外的参数。例如@类型,名称,网址。这有助于消费者在不抓取备用页面的情况下了解一些有关被引用实体的信息。它可以阻止测试工具抱怨。

在您的示例中,我至少会执行选项 1,并且可能还会添加 url。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...