概述

用例

探索 JSON Schema 的所有功能。本节介绍了 JSON Schema 的最常见用例,但可能还有更多应用等待发现。

Structural validation

结构验证


结构验证是指 JSON 文档应遵循的结构,例如哪些属性必须存在、哪些位置预期哪些类型的值,以及它们的外观。

Semantic annotation

语义注释


需要对 JSON 文档中的值进行注释:用于机器可读性,以及用于文档目的。

Domain-specific language

特定于领域的语言


开发人员可以编写一个应用程序,该应用程序在内部使用 JSON Schema 作为特定于领域的语言,以便 Schema 仅由单个方在单个应用程序内部使用。通过使用声明性语言,应用程序需求可以比人类做得更好进行优化。

A common vocabulary

通用词汇


开发团队维护着两个相似的应用程序,但针对不同的平台,使用不同的语言。应用程序从 JSON 文档的公共存储库中下载和读取。他们希望确保两个应用程序都以相同的方式接受或拒绝 JSON,因此他们编写了单个 JSON Schema 并将其部署到这两个应用程序。

Model-Driven UI constraints

模型驱动的 UI 约束


当服务器声明提交必须满足的约束时,需要用户界面接收这些约束以提供可接受值的模型驱动验证,从而使表单对用户更易于访问。

UI Generation

UI 生成


JSON Schema 可用于自动生成符合给定 Schema 的用户界面。

Data Serialization

数据序列化


压缩 JSON 数据以进行存储/传输。例如:https://jsonbinpack.sourcemeta.com

Fuzzing, enumeration, and generation

模糊测试、枚举和生成


安全应用程序需要在有效集内和有效集之外生成 JSON 文档的示例。

Partial validation

部分验证


由于技术限制,某些 JSON 解析器可能只能理解 JSON 值空间的子集,并且有意义地验证应用程序读取的值,而不是提供给 JSON 解析器的 JSON 文档。

Automated Testing

自动化测试


Schema 提供的良好输入/输出定义使合同和基于属性的测试场景成为可能。例如:https://schemathesis.readthedocs.io/en/stable/

Machine-readable profiles of Web resources

Web 资源的机器可读配置文件


提供 JSON 文档的 Web 服务器应该能够链接到一个配置文件文档,该文档以机器可读的形式描述数据的含义。

Schema Inference

Schema 推断


这在数据科学中非常有用。你可能拥有巨大的 JSON 数据集,并且不太了解其结构。你可以使用工具从数据中推断出 JSON Schema,以便更好地理解和处理它。

Hypermedia

超媒体


通用用户代理必须能够利用随着 Schema 演变而进行的 Schema,包括 Web 浏览器、蜘蛛和自动化工具。它应该支持松散耦合(就像 HTML 首页一样);因此 Schema 应该能够改变、添加和删除功能,而不会对兼容的客户端造成最小的破坏。

Results and Reporting

结果和报告


提供 Schema 和输入的方可能与执行验证的方不同;在这种情况下,应该有一种标准方法来抽象验证器接口,并报告验证操作的结果(验证结果、注释和错误)。

External validation

外部验证


作者可以嵌入其他媒体类型的资源,例如文本文档,或 base64 或十六进制编码的二进制文档;并且可能希望将这些文档的验证传递给另一个软件工具。

Intra-document data consistency validation

文档内数据一致性验证


JSON 文档可以携带必须在内部一致的关系数据。

Inter-database consistency validation

跨数据库一致性验证


JSON 文档可以携带必须针对外部数据源验证的关系数据。

Linting

代码整理


有时需要格式化,这种格式化不会影响文档的应用程序级含义,而是纯粹出于美观或兼容性原因指定要求。

需要帮助?

你发现这些文档有用吗?

帮助我们让我们的文档更出色!

在 JSON Schema,我们重视文档贡献,就像我们重视任何其他类型的贡献一样!

仍然需要帮助?

学习 JSON Schema 通常令人困惑,但不用担心,我们随时为您提供帮助!