org.everit.json.schema.SchemaException: #: 无法确定版本

org.everit.json.schema.SchemaException: #: could not determine version

抛出 SchemaException,指出无法确定版本,如标题所述。模式版本清楚地在模式中。这都是在数据验证之前。知道为什么会抛出此错误吗?

我的架构如下:

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$defs": {},
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "randomString": {
        "type": "string"
      }
    }
  }
}

And Java code:

JSONParser jsonParser = new JSONParser();
                String schemaPath = new File("").getAbsolutePath() + schema.json;
                Object schemaObj = jsonParser.parse(new FileReader(schemaPath));
                org.json.simple.JSONObject schemaJson = (org.json.simple.JSONObject) schemaObj;
                JSONObject rawSchema = new JSONObject(schemaJson.toString());
                //This is where the SchemaException gets thrown, the line after this comment
                Schema schema = SchemaLoader.load(rawSchema);
                //schema.validate(json);

图书馆不支持草稿 2020-12 和 2019-09。

您现在必须使用 draft 7(或使用其他库)。

编辑:草稿 7 的正确元架构 URL 是 "$schema": "https://json-schema.org/draft-07/schema"