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