Skip to content

JSON_SCHEMA_VALID

功能描述

验证json_doc是否符合json_doc_schema,并返回1表示验证通过或者返回0表示验证不通过。

语法格式

JSON_SCHEMA_VALID( json_doc_schema, json_doc )

参数说明

  • json_doc_schema:JSON Schema文本,JSON类型或JSON String类型。

  • json_doc:JSON文本,JSON类型或JSON String类型。

说明:

  • 如果任意参数为NULL返回NULL。
  • json_doc根据模式验证,通过返回1。

函数返回类型

INTEGER数值类型。

示例

json_doc_schema

json
{
  "type": "object",
  "properties": {
    "id": {
      "type": "number",
      "minimum": 10,
      "maximum": 100
    },
    "num": {
      "type": "number",
      "minimum": 10,
      "maximum": 100
    }
  },
  "required": ["id", "num"]
}

json_doc

json
{
  "id": 100,
  "num": 100
}

常规验证

sql
SQL> SELECT TO_CHAR(JSON_SCHEMA_VALID('{"type": "object", "properties": { "id": {"type": "number", "minimum": 10, "maximum": 100}, 
"num": {"type": "number", "minimum": 10, "maximum": 100} }, "required": ["id", "num"] }', '{"id": 100, "num": 100}'));

EXPR1 | 
------------------------------------------------------------------------------
1|

json_doc缺少num

JSON模式中定义了num是必须的成员,如下SQL缺少num所以JSON_SCHEMA_VALID()函数返回了0。

sql
SQL> SELECT TO_CHAR(JSON_SCHEMA_VALID('{"type": "object", "properties": { "id": {"type": "number", "minimum": 10, "maximum": 100}, 
"num": {"type": "number", "minimum": 10, "maximum": 100} }, "required": ["id", "num"] }', '{"id": 100}'));

EXPR1 | 
------------------------------------------------------------------------------
0|