Jsonschema可以验证列表之一中的至少一个元素

gai-jin

我有一个JSON,像这样:

{
  "listA": [
    {
      "prop1": "mine"
    },
     {
      "prop1": "mine"
    }
  ],
  "listB": [
    {
      "prop1": "mine"
    }
  ],
  "propsForAll": {
    "property1": "value",
    "property2": "value"
  }
}

我需要json模式来验证是否存在任何列表中的至少一个元素{listA,listB,listC}

目前,我的架构如下所示:

 "properties": {
 .....
    "listA": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/elementA"
      },
      "minItems": 1
    },
    "listB": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/elementB"
      },
      "minItems": 1
    },
    "listC": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/elementC"
      },
      "minItems": 1
    },
.....
  },
.....
  "anyOf": [
    {
      "required": [
        "listA"
      ]
    },
    {
      "required": [
        "listB"
      ]
    },
    {
      "required": [
        "listC"
      ]
    }
  ],

但是,如果我有一个带有一个元素的listA和一个listC-空,则会收到验证异常,这不是我所需要的。我需要在任何列表中有一个元素,有什么想法吗?

随意的

您需要将minItems: 1约束移动anyOf子方案。

这是一个现场演示:https : //jsonschema.dev/s/RszNl

{
  "properties": {
    "listA": {
      "type": "array",
      "items": {
 
      }
    },
    "listB": {
      "type": "array",
      "items": {

      }
    },
    "listC": {
      "type": "array",
      "items": {

      }
    }
  },
  "anyOf": [
    {
      "required": [
        "listA"
      ],
      "properties": {
        "listA": {
          "minItems": 1
        }
      }
    },
    {
      "required": [
        "listB"
      ],
      "properties": {
        "listB": {
          "minItems": 1
        }
      }
    },
    {
      "required": [
        "listC"
      ],
      "properties": {
        "listC": {
          "minItems": 1
        }
      }
    }
  ]
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java流-验证列表中的至少一个元素是否包含在另一个元素中

来自分类Dev

Angularjs验证:至少需要一个列表中的输入

来自分类Dev

根据第三个列表中的一个随机项,从两个列表之一中选择一个随机项

来自分类Dev

jsonschema:仅包含一个默认元素的元素列表

来自分类Dev

从三个表之一中选择一个值

来自分类Dev

检查列表中的所有元素是否在其属性之一中具有值-可以在一行中完成吗?

来自分类Dev

按列计算其他3列之一中的一个条件

来自分类Dev

我想截断数组元素之一中的文本

来自分类Dev

Spring JPA查询检查参数列表中是否至少存在一个列表元素

来自分类Dev

检查列表的至少一个元素是否包含在带有R的列表中

来自分类Dev

查找 id 可以在几列之一中的行

来自分类Dev

如何验证html字符串中的至少一个元素具有内容?

来自分类Dev

检查至少一个列表是否包含特定元素

来自分类Dev

查找组中至少一个元素是否匹配至少一个模式

来自分类Dev

如何获取包含至少一个元素出现的列表中的向量数量?

来自分类Dev

如何查询列表中至少存在一个元素的位置?

来自分类Dev

仅在抽象类的许多子类之一中添加一个额外的方法

来自分类Dev

验证相关实体,至少一个

来自分类Dev

如何根据两个不同列之一中包含的元素拆分数据帧?

来自分类Dev

打字稿:定义一个接口/类型,其中至少存在两个属性之一(也可以同时存在)

来自分类Dev

MainActivity片段之一中的NavigationDrawer

来自分类Dev

如果一个线程对并发集合之一中的一个对象进行了突变,将提供什么保证?

来自分类Dev

是否有一种方法可以根据列表框列之一中的条件在列表框中查找值?

来自分类Dev

验证<ui:repeat> <h:inputText>中的列表是否至少具有一个非空/空值

来自分类Dev

在列表中获取一个元素

来自分类Dev

过滤列表中的一个元素

来自分类Dev

使用循环搜索2个目录并找到重复的文件,然后从2个目录之一中删除其中一个

来自分类Dev

Play框架:如何验证JSON数组并确保其包含至少一个元素

来自分类Dev

创建一个元素列表可以依赖另一个列表的列表

Related 相关文章

  1. 1

    Java流-验证列表中的至少一个元素是否包含在另一个元素中

  2. 2

    Angularjs验证:至少需要一个列表中的输入

  3. 3

    根据第三个列表中的一个随机项,从两个列表之一中选择一个随机项

  4. 4

    jsonschema:仅包含一个默认元素的元素列表

  5. 5

    从三个表之一中选择一个值

  6. 6

    检查列表中的所有元素是否在其属性之一中具有值-可以在一行中完成吗?

  7. 7

    按列计算其他3列之一中的一个条件

  8. 8

    我想截断数组元素之一中的文本

  9. 9

    Spring JPA查询检查参数列表中是否至少存在一个列表元素

  10. 10

    检查列表的至少一个元素是否包含在带有R的列表中

  11. 11

    查找 id 可以在几列之一中的行

  12. 12

    如何验证html字符串中的至少一个元素具有内容?

  13. 13

    检查至少一个列表是否包含特定元素

  14. 14

    查找组中至少一个元素是否匹配至少一个模式

  15. 15

    如何获取包含至少一个元素出现的列表中的向量数量?

  16. 16

    如何查询列表中至少存在一个元素的位置?

  17. 17

    仅在抽象类的许多子类之一中添加一个额外的方法

  18. 18

    验证相关实体,至少一个

  19. 19

    如何根据两个不同列之一中包含的元素拆分数据帧?

  20. 20

    打字稿:定义一个接口/类型,其中至少存在两个属性之一(也可以同时存在)

  21. 21

    MainActivity片段之一中的NavigationDrawer

  22. 22

    如果一个线程对并发集合之一中的一个对象进行了突变,将提供什么保证?

  23. 23

    是否有一种方法可以根据列表框列之一中的条件在列表框中查找值?

  24. 24

    验证<ui:repeat> <h:inputText>中的列表是否至少具有一个非空/空值

  25. 25

    在列表中获取一个元素

  26. 26

    过滤列表中的一个元素

  27. 27

    使用循环搜索2个目录并找到重复的文件,然后从2个目录之一中删除其中一个

  28. 28

    Play框架:如何验证JSON数组并确保其包含至少一个元素

  29. 29

    创建一个元素列表可以依赖另一个列表的列表

热门标签

归档