我已经在2019-09(https://json-schema.org/draft/2019-09/release-notes.html)之前编写了JSON模式。如何使用Java进行验证?
我想编写方法(如果验证失败,则抛出异常):
void validate(Path pathToSchema) throws Exception {
// validation of schema by pathToSchema
}
P.S。我想验证JSON模式的正确性,而不是通过JSON模式的JSON文档。
答案 0 :(得分:0)
你对著名的 networknt lib 做了这样的事情:
JsonSchema schema = null;
JsonSchemaFactory factory = JsonSchemaFactory.getInstance(VersionFlag.V201909);
try {
schema = factory.getSchema(
"{\n"
+ " \"$schema\": \"http://json-schema.org/draft/2019-09/schema\",\n"
+ " \"$id\": \"#MyJsonClassSchema.json\",\n"
+ " \"type\": \"object\",\n"
+ " \"properties\": {\n"
+ " \"myProperty\": {\n"
+ " \"type\": \"string\"\n"
+ " }\n"
+ " }\n"
+ "}"
);
} catch (JsonSchemaException e) {
System.out.println("json schema invalid: \n" + e);
}
return schema;
这将从您在输入中设置的架构版本开始验证 json 架构的某些功能。
答案 1 :(得分:-1)
您可以使用Json验证器:-https://github.com/fge/json-schema-validator
或者您可以尝试使用Google Gson解析Json并捕获语法异常以进行验证,如下所示:-
try{
JsonParser parser = new JsonParser();
parser.parse(passed_json_string);
}
catch(JsonSyntaxException jse){
System.out.println("Not a valid Json String:"+jse.getMessage());
}