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



抛出SchemaException,表示不能像标题所说的那样确定版本。模式版本显然在模式中。这些都是在数据验证之前。知道为什么会抛出这个错误吗?

我的schema如下:

{
"$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"

相关内容

  • 没有找到相关文章

最新更新