- JSON Basics Tutorial
- JSON - Home
- JSON - Overview
- JSON - Syntax
- JSON - DataTypes
- JSON - Objects
- JSON - Schema
- JSON - Comparison with XML
- JSON - Examples
- JSON with PHP
- JSON with Perl
- JSON with Python
- JSON with Ruby
- JSON with Java
- JSON with Ajax
- JSON Useful Resources
- JSON - Quick Guide
- JSON - Useful Resources
- JSON - Discussion
JSON - 架构
JSON Schema 是基于 JSON 的格式规范,用于定义 JSON 数据的结构。它是根据 2011 年到期的 IETF 草案编写的。 JSON Schema -
- 描述您现有的数据格式。
- 清晰的、人类和机器可读的文档。
- 完整的结构验证,对于自动化测试很有用。
- 完成结构验证,验证客户提交的数据。
JSON 架构验证库
目前有多种可用于不同编程语言的验证器。目前最完整、最合规的 JSON 模式验证器是 JSV。
| 语言 | 图书馆 |
|---|---|
| C | 万家元素 (LGPLv3) |
| 爪哇 | json-schema-validator (LGPLv3) |
| 。网 | Json.NET(麻省理工学院) |
| 动作脚本3 | 弗丽嘉(麻省理工学院) |
| 哈斯克尔 | aeson 模式 (MIT) |
| Python | JSON模式 |
| Ruby | 自动解析(ASL 2.0);ruby-jsonschema (麻省理工学院) |
| PHP | php-json-schema(麻省理工学院)。json 模式(伯克利) |
| JavaScript | 有序(BSD);JSV;json 模式;马蒂奇(麻省理工学院);道场;坚持(修改版 BSD 或 AFL 2.0);schema.js。 |
JSON 架构示例
下面给出的是一个基本的 JSON 模式,其中涵盖了经典的产品目录描述 -
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Product",
"description": "A product from Acme's catalog",
"type": "object",
"properties": {
"id": {
"description": "The unique identifier for a product",
"type": "integer"
},
"name": {
"description": "Name of the product",
"type": "string"
},
"price": {
"type": "number",
"minimum": 0,
"exclusiveMinimum": true
}
},
"required": ["id", "name", "price"]
}
让我们检查一下可以在此模式中使用的各种重要关键字 -
| 先生。 | 关键字和描述 |
|---|---|
| 1 |
$模式 $schema 关键字表明该模式是根据 v4 规范草案编写的。 |
| 2 |
标题 您将使用它来为您的架构指定标题。 |
| 3 |
描述 架构的一些描述。 |
| 4 |
类型 type 关键字定义了 JSON 数据的第一个约束:它必须是 JSON 对象。 |
| 5 |
特性 定义 JSON 文件中使用的各种键及其值类型、最小值和最大值。 |
| 6 |
必需的 这保留了所需属性的列表。 |
| 7 |
最低限度 这是对该值施加的约束,表示最小可接受值。 |
| 8 |
独家最低 如果“exclusiveMinimum”存在并且布尔值为 true,则如果实例严格大于“minimum”的值,则该实例有效。 |
| 9 |
最大限度 这是对值施加的约束,表示最大可接受值。 |
| 10 |
独家最大 如果“exclusiveMaximum”存在并且布尔值为true,则如果实例严格低于“maximum”的值,则该实例有效。 |
| 11 |
多个 如果实例除以该关键字的值的结果是整数,则数字实例对于“multipleOf”有效。 |
| 12 |
最长长度 字符串实例的长度定义为其字符的最大数量。 |
| 13 |
最小长度 字符串实例的长度定义为其字符的最小数量。 |
| 14 |
图案 如果正则表达式成功匹配字符串实例,则该字符串实例被视为有效。 |
您可以检查http://json-schema.org以获取可用于定义 JSON 模式的关键字的完整列表。上述模式可用于测试以下 JSON 代码的有效性 -
[
{
"id": 2,
"name": "An ice sculpture",
"price": 12.50,
},
{
"id": 3,
"name": "A blue mouse",
"price": 25.50,
}
]