验证json模式中$ ref的正确性

问题描述 投票:0回答:1

要求是验证给定的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

jsonschema json-schema-validator
1个回答
0
投票

您可以通过消化JSON来验证$ ref的使用,递归提取$ ref的值,拆分斜杠,并检查路径是否存在。

这可能会变得更复杂,因为您可能有针对URL的外部引用。

我不能给你任何代码,因为我不知道JAVA。您似乎并不想使用该库特别可用。

© www.soinside.com 2019 - 2024. All rights reserved.