Json 架构数组大小参考

Json schema array size reference

我有一个 json 架构,其中包含两个实体 FooBarFoo 包含字段 size 并且 Bar 是一个数组。我希望 Bar 数组大小等于 Foo.size。有什么办法可以实现吗?

我的方法是使用对 Foosize 定义的引用,但它是一个无效的模式,因为模式验证器需要在“minItems”和“maxItems”之后有一个整数(我使用 https://www.jsonschemavalidator.net/).

方法:

{
  "$schema": "https://json-schema.org/draft/2019-09/schema",
  "properties": {
    "foo": {"$ref": "#/definitions/Foo"},
    "bar": {"$ref": "#/definitions/Bar"}
  },
  "required": ["foo", "bar"],
  "definitions": {
    "Foo": {
        "type": "object",
        "properties": {
            "size": {"type": "number"}
        },
        "required": ["size"]
    },
    "Bar": {
        "type": "array",
        "minItems": "#/definitions/Foo/properties/size", // invalid
        "maxItems": "#/definitions/Foo/properties/size"  //invalid
    }
  }
}

JSON Schema 不支持这种方式的数据引用,但可以对其进行扩展。

我支持JsonSchema.Net and my data vocabulary

可以找到文档 here