Java 针对Json模式的Json验证失败
我使用com.github.fge.jsonschema.main.jsonschema验证json 这是json模式:Java 针对Json模式的Json验证失败,java,json,Java,Json,我使用com.github.fge.jsonschema.main.jsonschema验证json 这是json模式: { "$schema": "http://json-schema.org/draft-07/schema#", "title": "Team data", "description": "Validation schema", "type": "object", "additionalProperties": false, "required": [
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Team data",
"description": "Validation schema",
"type": "object",
"additionalProperties": false,
"required": [
],
"properties": {
"name": {
"type": "string",
"minLength": 2,
"maxLength": 255,
"description": "Name"
}
}
}
这是根据模式验证的json:
{"name" : "name"}
当我使用在线验证器进行检查时,这是有效的,但在测试中我得到一个错误:
Caused by: com.github.fge.jsonschema.core.exceptions.InvalidSchemaException: fatal: invalid JSON Schema, cannot continue
Syntax errors:
[ {
"level" : "error",
"message" : "array must have at least one element",
"domain" : "syntax",
"schema" : {
"loadingURI" : "#",
"pointer" : ""
},
"keyword" : "required"
} ]
level: "fatal"
at com.github.fge.jsonschema.processors.validation.InstanceValidator.process(InstanceValidator.java:114) ~[json-schema-validator-2.2.10.jar:?]
at com.github.fge.jsonschema.processors.validation.ValidationProcessor.process(ValidationProcessor.java:56) ~[json-schema-validator-2.2.10.jar:?]
at com.github.fge.jsonschema.processors.validation.ValidationProcessor.process(ValidationProcessor.java:34) ~[json-schema-validator-2.2.10.jar:?]
at com.github.fge.jsonschema.core.processing.ProcessingResult.of(ProcessingResult.java:79) ~[json-schema-core-1.2.10.jar:?]
at com.github.fge.jsonschema.main.JsonSchemaImpl.doValidate(JsonSchemaImpl.java:77) ~[json-schema-validator-2.2.10.jar:?]
at com.github.fge.jsonschema.main.JsonSchemaImpl.validate(JsonSchemaImpl.java:100) ~[json-schema-validator-2.2.10.jar:?]
at com.github.fge.jsonschema.main.JsonSchemaImpl.validate(JsonSchemaImpl.java:110) ~[json-schema-validator-2.2.10.jar:?]...
我看不出错误在哪里。嗯,错误似乎出现在您的方案中,而不是要验证的文件中。必需属性为数组类型,但该数组没有元素 当您删除属性
required
,或提供至少一个字符串元素指示哪些属性是必需的时,验证成功:
"required": [
"name"
]
由于的草稿4,数组必须至少有一个元素。json元素中有一个必需的数组。我认为该阵列中至少应有一个对象,错误似乎出现在您的方案中,而不是要验证的文件中。
required
属性是数组类型,但数组没有元素。