Json 架构验证和 Json 验证的分离
Seggregation of Json Schema Validation and Json Validation
我有一个用例,我将采用 json-schema 作为输入,对其进行验证,然后保留在我的系统中。稍后我将获得 json 数据,我需要使用上述 json-schema 进行验证。在这种情况下,我需要进行两级验证:
1. provided json-schema is valid or not.
2. Json is valid or not.
我正在使用 json-schema-validator jar 并且只能找到二级验证,在文档中找不到 json-schema 验证。例如:假设我们有以下示例 json-schema:
{
"title": "Person",
"type": "object",
"properties": {
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"age": {
"description": "Age in years",
"type": "integer",
"minimum": 0
}
},
"required": ["firstName", "lastName"]
}
那么如何验证这个 json-schema 本身是否有效?
您必须根据元模式验证模式:http://json-schema.org/draft-04/schema
这里有一个使用 everit-org/json-schema 实现的工作示例(以防万一您想使用维护的库):
我有一个用例,我将采用 json-schema 作为输入,对其进行验证,然后保留在我的系统中。稍后我将获得 json 数据,我需要使用上述 json-schema 进行验证。在这种情况下,我需要进行两级验证:
1. provided json-schema is valid or not.
2. Json is valid or not.
我正在使用 json-schema-validator jar 并且只能找到二级验证,在文档中找不到 json-schema 验证。例如:假设我们有以下示例 json-schema:
{
"title": "Person",
"type": "object",
"properties": {
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"age": {
"description": "Age in years",
"type": "integer",
"minimum": 0
}
},
"required": ["firstName", "lastName"]
}
那么如何验证这个 json-schema 本身是否有效?
您必须根据元模式验证模式:http://json-schema.org/draft-04/schema
这里有一个使用 everit-org/json-schema 实现的工作示例(以防万一您想使用维护的库):