Java 针对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": [

我使用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": [
  ],
  "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
属性是数组类型,但数组没有元素。