什么是 JSON Schema?

JSON Schema 是一种用于描述和验证 JSON 数据结构的规范语言。它定义数据类型、必需属性、格式约束和嵌套结构,广泛应用于 API 请求响应验证、配置文件校验、表单生成和 OpenAPI 规范等场景,支持自动化验证和文档生成。

快速了解

全称JSON Schema 规范
创建时间2009 年(首个草案)
规范文档官方规范

工作原理

JSON Schema 为给定应用程序所需的 JSON 数据以及如何与之交互提供了契约。它可以验证数据类型、必需属性、字符串模式、数值范围、数组长度等。JSON Schema 本身用 JSON 编写,易于理解和生成。它支持 $ref 用于可重用定义、allOf/anyOf/oneOf 用于组合,以及 if/then/else 用于条件验证。JSON Schema 广泛用于 API 文档(OpenAPI)、配置验证和表单生成。

主要特点

  • 用 JSON 格式编写
  • 验证数据类型、格式和约束
  • 支持 $ref 用于可重用定义
  • 使用 allOf、anyOf、oneOf 进行组合
  • 使用 if/then/else 进行条件验证
  • 用于 OpenAPI/Swagger 规范

常见用途

  1. API 请求/响应验证
  2. 配置文件验证
  3. 表单生成和验证
  4. 文档生成
  5. 数据交换契约

示例

loading...
Loading code...

常见问题

JSON Schema 有什么用途?

JSON Schema 用于验证 JSON 数据结构、定义 API 契约、生成文档、创建表单和确保数据一致性。它指定哪些属性是必需的、它们的数据类型、格式和约束,使应用程序和 API 能够进行自动化验证。

JSON 和 JSON Schema 有什么区别?

JSON 是用于存储和交换数据的数据格式(如 {"name": "张三"})。JSON Schema 是用 JSON 编写的规范,描述有效的 JSON 数据应该是什么样子。JSON Schema 定义规则;JSON 是遵循这些规则的数据。

如何根据 JSON Schema 验证 JSON?

使用编程语言的 JSON Schema 验证库(如 JavaScript 的 ajv、Python 的 jsonschema、Ruby 的 json-schema)。这些库将您的 schema 和数据作为输入,返回验证结果,包括发现的任何错误。

JSON Schema 有哪些不同的草案版本?

主要版本包括 Draft-04、Draft-06、Draft-07、Draft 2019-09 和 Draft 2020-12。每个版本都添加了功能和改进。Draft 2020-12 是最新版本,引入了 $dynamicRef 和 prefixItems。始终使用 $schema 关键字指定您的 schema 使用哪个版本。

如何使用 $ref 引用另一个 schema?

$ref 允许您引用和重用 schema 定义。使用带有 JSON Pointer 的 $ref(如 "$ref": "#/$defs/address")进行内部引用,或使用 URI 引用外部 schema。这促进了 DRY 原则,使 schema 更易维护和模块化。

相关工具

相关术语

相关文章

JSON Schema验证详解【2026】- 数据结构正确性保障

深入学习 JSON Schema 验证规范的高级底层 AST 原理与企业工程化实战应用。全面掌握如何利用 Schema 严格定义复杂嵌套数据结构、使用高级正则表达式约束字段格式、实现前端复杂动态表单验证与后端 REST API 接口请求响应强校验,彻底保障微服务架构系统数据流的完整性与安全性。本文附带基于 JavaScript(Ajv)、Python(jsonschema)、Java 多语言的完整校验代码示例!

2024-12-15

JSON vs XML终极对决【2026】- 数据格式选择全攻略

深入对比现代 Web 开发中两大主流数据交换格式:轻量级的 JSON 与结构严谨的 XML 的优劣差异。本高级指南从底层语法结构、反序列化解析性能、人类可读性、生态系统支持等维度进行全方位深度剖析。教您如何在现代 RESTful API 接口设计、微服务架构通信、复杂企业级 SOAP 应用对接等实际工程场景中制定最合理的数据格式选择与技术迁移重构策略!

2024-01-25

YAML与JSON互转详解【2026】- 配置文件格式与转换原理

全面系统地掌握 YAML 与 JSON 两种主流数据格式的深层语法结构差异和双向互转原理,深入了解 YAML 作为 JSON 严格超集的高级特性(如锚点引用、多行字符串)。学习现代 DevOps 复杂配置文件管理的业界最佳实践,彻底掌握在 Kubernetes 集群、Docker Compose、CI/CD 流水线等高级工程场景下的格式选择规范与高效转换技巧。

2026-01-12