# JSON 模式验证器

欢迎使用我们的 JSON 模式验证器。确保您的 JSON 数据符合预定义的模式，以实现数据完整性和一致性。该工具对于开发人员、数据分析师以及处理 JSON 数据的任何人来说都至关重要。

## JSON Schema Validator 如何检查数据

JSON Schema Validator 会根据 JSON Schema 检查 JSON 文档，并报告 Valid 或 Invalid，同时指出每个问题的位置，位置以 JSON Pointer 表示，例如 /age。没有 $schema 关键字的架构会按 draft-07 读取。

验证使用 Opis JSON Schema 库。两个输入都会先经过与 JSON Repair 相同的修复步骤，因此尾随逗号不会导致检查中止。指向另一台服务器上架构的 $ref 不会被下载，并会报告为未解析的引用。

## 示例说明

### 匹配的数据

两个必需属性都已提供，且 age 是非负整数。

**模式**

```
{
 "type": "object",
 "required": ["name", "age"],
 "properties": {
  "name": {"type": "string"},
  "age": {"type": "integer", "minimum": 0}
 }
}
```

**JSON**

```
{"name": "Ada", "age": 36}
```

**结果**

✅ **有效**

### 低于最小值的值

与上方相同的架构。错误指向 /age。

**JSON**

```
{"name": "Ada", "age": -1}
```

**结果**

❌ **无效**

```
{
  "/age": [
    "Number must be greater than or equal to 0"
  ]
}
```

### 缺少必需属性

与上方相同的架构。缺失属性会报告在本应包含它的对象上；此处是根对象，记作 /。

**JSON**

```
{"age": 36}
```

**结果**

❌ **无效**

```
{
  "/": [
    "The required properties (name) are missing"
  ]
}
```

## 常用的 draft-07 关键字

这些关键字涵盖了大多数日常架构。它们都定义在 draft-07 的 JSON 架构验证规范中。

| 关键字 | 检查内容 | 示例 |
| --- | --- | --- |
| `type` | JSON 类型：字符串、数字、整数、布尔值、对象、数组或 null。 | `{"type": "string"}` |
| `required` | 对象中必须存在的属性。 | `{"required": ["id"]}` |
| `properties` | 为每个命名属性定义的架构。 | `{"properties": {"id": {"type": "integer"}}}` |
| `additionalProperties` | 是否允许出现 properties 中未列出的属性。 | `{"additionalProperties": false}` |
| `enum` | 值必须等于列出的某个值。 | `{"enum": ["draft", "published"]}` |
| `minimum, maximum` | 数字的包含式上下限。 | `{"minimum": 0, "maximum": 100}` |
| `minLength, maxLength` | 字符串字符数的上下限。 | `{"maxLength": 60}` |
| `pattern` | 字符串必须匹配的正则表达式。 | `{"pattern": "^[a-z-]+$"}` |
| `items` | 数组中的每个元素都必须匹配的架构。 | `{"items": {"type": "string"}}` |

## 如何使用 JSON 模式验证器

1. 步骤 1：在输入框中输入 JSON 数据。
2. 第 2 步：提供相应的 JSON 模式。
3. 步骤 3：点击 "验证 JSON 模式 "按钮，根据模式检查数据。

## 使用我们的 JSON 模式验证器的好处

- 确保数据完整性：根据模式验证 JSON 数据，以保持数据质量。
- 一致的数据：确保数据符合各应用程序的预期结构。
- 用户友好型：界面简单，易于验证。

## 常见问题

### 如何根据模式验证 JSON？

要根据模式验证 JSON，请在输入字段中输入 JSON 数据，并提供相应的 JSON 模式。单击 "验证 JSON "按钮，工具将根据模式检查数据，并显示任何验证错误。

### 什么是 JSON 模式？

JSON 模式是一种定义 JSON 数据结构、内容和约束的格式。它规定了预期的数据类型、必填字段和其他验证规则，以确保 JSON 数据格式正确且一致。

### 为什么 JSON 模式验证很重要？

JSON 模式验证对于确保跨应用程序的数据完整性和一致性至关重要。它有助于在开发过程中尽早发现错误，防止数据损坏，并确保应用程序接口和其他系统正确处理数据。

### 能否验证复杂的 JSON 结构？

是的，JSON 模式验证器可以处理复杂的 JSON 结构，包括嵌套对象、数组和各种数据类型，确保针对模式进行彻底验证。

### 如果我的 JSON 数据与模式不匹配，会发生什么情况？

如果您的 JSON 数据与模式不匹配，验证器将显示详细的错误信息，说明问题所在。这有助于您识别和修复错误，确保您的数据符合预期结构。

### 支持哪个 JSON 模式版本？

验证器通常支持最近的 JSON 模式草案（Draft 4、Draft 6、Draft 7、2019-09、2020-12）。每个版本都引入了增强的功能和改进的验证能力，确保与现代模式定义兼容。

### 如何创建 JSON 模式？

使用 JSON 模式语法定义预期的 JSON 结构：指定所需的属性、数据类型（字符串、数字、布尔、数组、对象）、约束（最小/最大、模式、枚举）和嵌套。利用模式生成器或手动编写，然后使用真实数据进行测试。

### 模式验证是否取代了单元测试？

模式验证可以补充单元测试，但不能取代单元测试。它能验证数据结构和类型，但无法验证业务逻辑、计算或工作流。使用模式验证来检查API契约和数据完整性；使用单元测试来检查应用程序逻辑和行为。

### 验证如何有益于 API 开发？

架构验证可确保 API 请求和响应符合预期格式，在处理前发现格式错误的数据，清晰记录 API 契约，支持自动生成文档和 API 版本管理，并通过边界验证提高集成可靠性。

### 有哪些典型的验证错误？

常见错误包括类型不匹配（字符串与数字）、缺失必填属性、意外附加属性、超出允许枚举范围的值、模式不匹配、数组长度违规、数字范围违规以及嵌套对象验证失败，并提供具体的错误详细信息。

### 模式可以验证表单输入吗？

是的，JSON 模式擅长表单验证。在模式中定义字段类型、必填字段、验证规则、最小/最大值和模式。许多表单库都支持声明式验证的 JSON 模式，从而减少了手动验证代码。

### 如何使用模式验证数组？

使用类型："array "定义数组模式，使用 "items "指定项模式，设置最小项/最大项等约束条件，使用 uniqueItems 强制执行唯一值，以及验证嵌套数组结构。验证器可确保所有数组元素都符合模式要求。

### 什么是模式优先开发？

模式优先开发在实施代码前定义数据模式。创建记录预期数据结构的 JSON 模式，使用它们验证所有输入/输出，根据模式生成代码，并确保所有组件使用一致的数据合约，从而减少集成问题。

### 模式能否验证条件要求？

是的，JSON 模式通过 if/then/else、dependencies、oneOf、anyOf 和 allOf 等关键字支持条件验证。这些关键字支持复杂的验证逻辑，只有在满足特定条件时才需要某些属性。

在这里投放广告？

[给我们发邮件](mailto:hi@dennn.is?subject=%E5%9C%A8%20JSON%20Schema%20Validator%20%E4%B8%8A%E6%8A%95%E6%94%BE%E5%B9%BF%E5%91%8A)

[广告 适用于 WordPress 的智能体就绪型插件套件。](https://sleekwp.com/?ref=json-schema-validator)
