Json 模式数组大小参考
Posted
技术标签:
【中文标题】Json 模式数组大小参考【英文标题】:Json schema array size reference 【发布时间】:2022-01-22 21:58:37 【问题描述】:我有一个包含两个实体 Foo
和 Bar
的 json 架构。 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
【问题讨论】:
【参考方案1】:JSON Schema 不支持这种方式的数据引用,但可以对其进行扩展。
我支持JsonSchema.Net 和我的data
vocabulary。
可以在here找到文档。
【讨论】:
以上是关于Json 模式数组大小参考的主要内容,如果未能解决你的问题,请参考以下文章
在 Hive 中,这种模式如何从 json 数组中识别嵌套的 json?