JSON-LD 格式的结构化数据详解

16 min read

JSON-LD 是一种用于描述结构化数据的格式,它使用 JSON 格式来表示数据。这种格式与其他格式相比,如谷歌公司的 microdata 和 RDFa,它使用了更为简单和易于理解的方式来表示数据。

JSON-LD 的最大特点就是可以保留数据和 HTML 结构的分离,这一点是其他格式不具备的。在使用 JSON-LD 进行结构化数据描述时,可以将结构化数据嵌入到 HTML 页面中的 script 标签中,而并不需要将数据直接嵌入到 HTML 标记中。这一点使得网站的代码更加简洁,更易于维护。

JSON-LD 中有四部分组成:

  1. @context

@context 是一个 JSON 对象,它用来定义参照的上下文。这里的上下文指的是特定领域下的概念以及它们的语义定义。一个完整的上下文可以包括多个键值对,每个键表示某个概念,值则是这个概念的定义。

例如,以下是一个简单的 @context 定义:

{
  "@context": {
    "name": "http://schema.org/name",
    "address": {
      "@id": "http://schema.org/address",
      "@type": "@id"
    }
  },
  "@type": "Person",
  "name": "John Smith",
  "address": "http://example.com/address"
}

在上面的例子中,@context 定义了两个概念:name 和 address。其中,name 的语义定义为 http://schema.org/name,而 address 的语义定义则包括一个 @id,表示这个概念的 URI,以及一个 @type,表示这个概念的类型。

  1. @type

@type 定义了当前结构数据的类型,它的取值可以是由 @context 中定义的词汇表中的词汇或自己定义的类型。

例如:

{
  "@context": {
    "name": "http://schema.org/name",
    "birthDate": "http://schema.org/birthDate",
    "spouse": {
      "@id": "http://schema.org/spouse",
      "@type": "@id"
    }
  },
  "@type": "Person",
  "name": "Jane Doe",
  "birthDate": "1974-05-07",
  "spouse": "http://example.com/spouse"
}

在上面的例子中,@type 声明了这个结构数据是一个 Person 类型的数据。

  1. @id

@id 定义了当前结构化数据的唯一标识符,通常是一个 URL。

例如:

{
  "@context": {
    "name": "http://schema.org/name",
    "birthDate": "http://schema.org/birthDate"
  },
  "@id": "http://example.com/person/12345",
  "@type": "Person",
  "name": "Jane Doe",
  "birthDate": "1974-05-07"
}

在上面的例子中,@id 声明了这个结构化数据的唯一标识符为 http://example.com/person/12345

  1. Properties & Values

除了上述三个字段外,JSON-LD 结构化数据还包含属性和值信息,这些属性和值构成了整个结构化数据。通过 @context 中定义的词汇表,我们可以将这些属性和值与知识图谱上的概念进行关联,从而为搜索引擎提供更多的信息。

例如:

{
  "@context": {
    "name": "http://schema.org/name",
    "birthDate": "http://schema.org/birthDate"
  },
  "@id": "http://example.com/person/12345",
  "@type": "Person",
  "name": "Jane Doe",
  "birthDate": "1974-05-07"
}

在上面的例子中,name 和 birthDate 是两个属性,它们的值分别是 Jane Doe 和 1974-05-07。通过 @context 中定义的词汇表,我们可以将这些属性和值与知识图谱上的概念进行关联,从而为搜索引擎提供更多的信息。

总之,JSON-LD 是一种简单易用的结构化数据格式,它通过使用 JSON 和 @context 来定义结构化数据的类型、属性和值,为搜索引擎提供更多的上下文信息,提高搜索体验。