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"
抛出 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"