JSON_SCHEMA_VALIDATION_REPORT
功能描述
验证json_doc
是否符合json_doc_schema
并返回验证报告。
语法格式
JSON_SCHEMA_VALIDATION_REPORT( json_doc_schema, json_doc )
参数说明
json_doc_schema
:JSON Schema文本,JSON类型或JSON String类型。json_doc
:JSON文本,JSON类型或JSON String类型。
说明:
如果任意参数为NULL返回NULL。
返回报告为如下键以及相应值组成的JSON对象:
valid
:验证成功为true,失败为false。失败才会有下列键值对。reason
:失败原因。schema-location
:Schema的失败位置。document-location
:JSON文本的失败位置。schema-failed-keyword
:Schema的失败的关键字。
函数返回类型
JSON数值类型。
示例
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": 101
}
判断JSON文本是否符合JSON模式,并返回验证报告。
sql
SQL> SELECT TO_CHAR(JSON_SCHEMA_VALIDATION_REPORT('{"type": "object", "properties": { "id": {"type": "number", "minimum": 10, "maximum": 100},
"num": {"type": "number", "minimum": 10, "maximum": 100} }, "required": ["id", "num"] }', '{"id": 100, "num": 101}'));
EXPR1 |
------------------------------------------------------------------------------
{"valid": false, "reason": "The JSON document location '#/num' failed requirement 'maximum' at JSON Schema location '#/properties/num'",
"schema-location": "#/properties/num", "document-location": "#/num", "schema-failed-keyword": "maximum"}|
报告显示:id的值为100,符合Schema的要求,但num的值为101,超出了Schema定义的最大值100。