JSON-LD 语法基础
JSON-LD 保留 JSON 的基本结构,但引入一组以 @ 开头的关键字。它们不是普通业务字段,而是告诉处理器如何解释数据。
基本骨架
{
"@context": "https://schema.org",
"@type": "Person",
"@id": "https://example.com/people/ada",
"name": "Ada Chen",
"jobTitle": "前端工程师"
}
| 字段 | 作用 |
|---|---|
@context |
定义字段和类型来自哪里 |
@type |
声明当前对象的类型 |
@id |
声明当前实体的稳定标识 |
name |
普通属性,由上下文映射到完整语义 |
对象类型
@type 可以是一个字符串,也可以是数组:
{
"@context": "https://schema.org",
"@type": ["Person", "Author"],
"name": "Ada Chen"
}
在 Schema.org 场景中,通常使用最贴近页面内容的一个类型即可。多类型更适合知识图谱或内部数据整合。
稳定标识符
@id 表示实体身份。多个文档中出现同一个 @id,可以被理解为同一个实体。
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://example.com/#organization",
"name": "Example Docs",
"url": "https://example.com"
}
常见做法:
- 页面主体:使用页面规范 URL。
- 站点组织:使用首页 URL 加片段,例如
https://example.com/#organization。 - 作者:使用作者主页 URL。
- 商品:使用商品详情页 URL 或稳定商品 URI。
嵌套实体
JSON-LD 可以直接嵌套对象:
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "语义化数据指南",
"author": {
"@type": "Person",
"@id": "https://example.com/authors/ada",
"name": "Ada Chen"
}
}
如果同一个实体在多处出现,优先给它稳定 @id,减少歧义。
数组
多个作者、图片或面包屑项都可以使用数组:
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "多人协作文章",
"author": [
{ "@type": "Person", "name": "Ada Chen" },
{ "@type": "Person", "name": "Lin Zhou" }
]
}
值对象
当普通字符串不够表达语言、数据类型或方向时,可以使用值对象:
{
"@context": "https://schema.org",
"@type": "Book",
"name": {
"@value": "小王子",
"@language": "zh-CN"
}
}
图
@graph 用于在同一个文档中发布多个相互关联的实体:
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://example.com/#org",
"name": "Example Docs"
},
{
"@type": "WebSite",
"@id": "https://example.com/#website",
"publisher": { "@id": "https://example.com/#org" },
"url": "https://example.com"
}
]
}
@graph 很适合站点级实体、页面实体和组织实体同时出现的场景。
JSON-LD 不是 JavaScript
application/ld+json 中必须是合法 JSON:
{
"ok": true,
"count": 3,
"items": ["a", "b"]
}
不要写成:
{
ok: true,
count: 3,
// JSON 中不能有注释
}
尾随逗号、单引号、未加引号的键名、注释和函数都会导致解析失败。
相关内容
- JSON-LD 进阶用法 介绍 @graph、实体复用、反向属性、语言映射、索引映射、远程上下文和 API 设计等 JSON-LD 进阶实践。
- JSON-LD 最佳实践 汇总 JSON-LD 在网页、API、结构化数据和知识图谱中的生产建议,覆盖数据一致性、ID 设计、上下文治理和验证流程。
- JSON-LD 上下文与词汇表 深入理解 @context 的作用、远程上下文、本地上下文、@vocab、前缀映射和字段别名,掌握 JSON-LD 语义映射方式。
- JSON-LD 快速开始 通过一个可直接嵌入 HTML 页面的 Article 示例,学习 JSON-LD 的编写、放置、验证和迭代流程。
- JSON-LD 简介 介绍 JSON-LD 的定位、适用场景、与普通 JSON 和 RDF 的关系,以及它在网页结构化数据和开放数据中的价值。
- Schema.org 与 SEO 说明如何用 JSON-LD 编写 Schema.org 结构化数据,理解 Google 搜索支持范围、富媒体结果资格和页面内容一致性要求。