java - 如何使用 json-schema-validator 根据超模式验证 JSON

标签 java json validation jsonschema json-schema-validator

我不知道如何正确设置超模式以与 json-schema-validator 一起使用。我使用的是java版本的json-schema-validator,版本是2.2.5。

我的架构是:

{
"$schema": "http://json-schema.org/draftv4/hyper-schema#",
"title": "User object",
"description": "A user representation",
"type": "object",
"properties": {
    "email": {
        "description": "The user's email address",
        "format":"email",
        "maxLength": 255
    },
    "picture": {
        "description": "The user's picture",
        "type": "string",
        "media": {
            "binaryEncoding": "base64",
            "type": "image/png"
        }
    }
}
}

我的 json 对象是:

{"email":"k@w.de",
"picture":null}

现在,当我将架构加载到 JsonSchemaFactory 并打算开始验证时,我收到以下警告:

warning: the following keywords are unknown and will be ignored: [media]
level: "warning"
schema: {"loadingURI":"#","pointer":"/properties/picture"}
domain: "syntax"
ignored: ["media"]

除了 $schema 字段之外,还需要配置其他任何内容来使用超模式吗?

最佳答案

这是因为你的 $schema 错误!

应该是http://json-schema.org/draft-04/hyper-schema#。请参阅section 6 of the core specification查看众所周知的 URI 列表。

关于java - 如何使用 json-schema-validator 根据超模式验证 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26688131/

相关文章:

java - 为什么响应式(Reactive)编程取代了观察者模式

java - Tomcat servlet 请求的资源不可用

json - 将 curl POST 与 bash 脚本函数中定义的变量一起使用

javascript - 在 JavaScript 中验证日期为 mm/dd/yyyy 格式

validation - 如何检查提供的 CSRF token 在 Symfony2 中是否无效?

java - 为什么在静态方法中引用字段时不能使用关键字 "this"?

android - 使用android创建动态 View

json - 如何使用 ConvertTo-Json 将字符串转换为整数?

jQuery 美国货币验证正则表达式也允许整数

java - TheApplyAsync 与 CompletableFuture 使用与 SupplyAsync 线程相同的线程