要求是验证给定的json模式,没有悬挂的$ ref指向文件中的定义。
{
"$schema": "http://json-schema.org/draft-6/schema#",
"definitions": {
"date": {
"type": "string",
"pattern": "^(0?[1-9]|[12][0-9]|3[01])\\-(0?[1-9]|1[012])\\-\\d{4}$"
},
},
"properties": {
"my_date": {"$ref": "#/definitions/dat"}
}
}
这里,参考中有一个拼写错误(dat而不是date)。我想捕获这样的实例而不是运行时失败。
正在使用的图书馆:https://github.com/java-json-tools/json-schema-validator
您可以通过消化JSON来验证$ ref的使用,递归提取$ ref的值,拆分斜杠,并检查路径是否存在。
这可能会变得更复杂,因为您可能有针对URL的外部引用。
我不能给你任何代码,因为我不知道JAVA。您似乎并不想使用该库特别可用。