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|