Json 架构数组大小参考
Json schema array size reference
我有一个 json 架构,其中包含两个实体 Foo
和 Bar
。 Foo
包含字段 size
并且 Bar
是一个数组。我希望 Bar
数组大小等于 Foo.size
。有什么办法可以实现吗?
我的方法是使用对 Foo
中 size
定义的引用,但它是一个无效的模式,因为模式验证器需要在“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。
我有一个 json 架构,其中包含两个实体 Foo
和 Bar
。 Foo
包含字段 size
并且 Bar
是一个数组。我希望 Bar
数组大小等于 Foo.size
。有什么办法可以实现吗?
我的方法是使用对 Foo
中 size
定义的引用,但它是一个无效的模式,因为模式验证器需要在“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。