Json 模式数组大小参考

Posted

技术标签:

【中文标题】Json 模式数组大小参考【英文标题】:Json schema array size reference 【发布时间】:2022-01-22 21:58:37 【问题描述】:

我有一个包含两个实体 FooBar 的 json 架构。 Foo 包含字段 sizeBar 是一个数组。我希望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 模式数组大小参考的主要内容,如果未能解决你的问题,请参考以下文章

大小端模式

在 JSON 模式中定义枚举数组的正确方法

在 Hive 中,这种模式如何从 json 数组中识别嵌套的 json?

强制数组内容的 JSON 模式

用于存储子文档的 JSON 对象数组的 Mongoose 模式

如何在Mongoose模式中设置数组大小的限制