跳到主要内容

JSON_SCHEMA_VALID

描述

该函数用于验证 JSON 文档。如果 JSON 文档符合 JSON Schema 规范,则返回 1。如果不符合 JSON Schema 规范,则返回 0。可用于列约束。

语法

JSON_SCHEMA_VALID(schema, document)

说明

  • 参数 schema 用于指定 JSON Schema,且 Schema 必须是有效的 JSON 对象。

    • JSON Schema 中支持使用 required 属性来强制必须包含的属性。

    • JSON Schema 中支持 id$schemadescriptiontype 属性,但不要求必须提供这些属性。

  • 参数 document 用于指定待验证的 JSON 文档,该 JSON 文档必须是有效的 JSON 文档。

  • 如果其中有一个参数不是有效的 JSON,该函数就会引发错误。

示例

以下示例中,通过 '{"type": "string"}' 定义了一个 JSON Schema,且该 Schema 指明了有效的 JSON 数据应该是一个字符串类型。'"JSON_doc"' 是待验证的 JSON 文档。

提示

该语句中,字符串 JSON_doc 被双引号(")包裹,表示它是一个有效的 JSON 字符串,而不仅仅是普通的字符串。在 JSON 中,字符串值必须被双引号包裹。

SELECT JSON_SCHEMA_VALID('{"type": "string"}', '"JSON_doc"');

返回结果如下:

+-------------------------------------------------------+
| JSON_SCHEMA_VALID('{"type": "string"}', '"JSON_doc"') |
+-------------------------------------------------------+
| 1 |
+-------------------------------------------------------+
1 row in set (0.001 sec)

本示例中,由于 JSON 文档是一个有效的 JSON 字符串,符合 Schema 所规定的字符串类型,故函数返回 1,表示验证通过。