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 实现的工作示例(以防万一您想使用维护的库):