使用JSON Schema对另一个属性进行验证

迪奥戈

在下面的模型中,仅当“详细信息”数组为空时,才需要“ category_id”属性。

如果“详细信息”数组不为空,则不需要“ category_id”属性。

如何使用JSON模式执行此操作?

{
    "description": "Expense model validation.",
    "type": "object",
    "properties": {
        "description": {
            "type": "string"
        },
        "category_id": {
            "type": "string"
        },
        "detail": {
            "type": "array",
            "items": {
                "description": "Expense detail",
                "type": "object",
                "properties": {
                    "description": {
                        "type": "string"
                    }
                },
                "required": [ "description" ]
            }
        }
    },
    "required": [ "description", "category_id" ]
}
杰森·德罗斯(Jason Desrosiers)

您可以anyOf用来检查category_id是否存在,或者detail存在并且至少有一项。

{
  "description": "Expense model validation.",
  "type": "object",
  "properties": {
    "description": { "type": "string" },
    "category_id": { "type": "string" },
    "detail": {
      "type": "array",
      "items": {
        "description": "Expense detail",
        "type": "object",
        "properties": {
          "description": { "type": "string" }
        },
        "required": ["description"]
      }
    }
  },
  "required": ["description"],
  "anyOf": [
    { "required": ["category_id"] },
    {
      "properties": {
        "detail": { "minItems": 1 }
      },
      "required": ["detail"]
    }
  ]
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C# 中的 FluentValidation - 使用另一个对象中的属性进行验证

来自分类Dev

Json模式。如何基于另一个属性值验证属性键?

来自分类Dev

Json模式。如何基于另一个属性值验证属性键?

来自分类Dev

过滤一个json并使用另一个json进行响应

来自分类Dev

使用基于另一个属性值的嵌套路径进行Mongodb查询

来自分类Dev

If语句使用另一个文件中的属性进行测试

来自分类Dev

当不存在另一个参数时,需要使用JSON Schema的参数

来自分类Dev

从另一个列表对json列表进行排序

来自分类Dev

递归属性,使用另一个属性中的一个属性

来自分类Dev

使用另一个变量进行子集

来自分类Dev

使用另一个变量进行子集

来自分类Dev

使用另一个类的instance属性。Python

来自分类Dev

使用 Javascript Reduce 添加一个属性并乘以另一个属性

来自分类Dev

使用Underscore进行主干诱人将在模板中呈现一个属性,而不在另一个属性中呈现

来自分类Dev

如何使用XML Schema重用另一个Schema / Namespace(即XHTML)中的元素?

来自分类Dev

避免使用Angular和JSON进行另一个API调用

来自分类Dev

使用 Swift Decodable 进行动态(但称为另一个键值)JSON 解码

来自分类Dev

使用jq获取基于json中另一个属性的键列表

来自分类Dev

展平json,以使一个属性是键,而另一个值

来自分类Dev

通过给定的一个获取另一个 JSON 对象属性

来自分类Dev

如果属性已经具有另一个属性,则强制在属性上使用属性

来自分类Dev

使用一个列表对另一个列表进行排序

来自分类Dev

c#根据另一个属性的相同值,从另一个中减去一个json的属性int值

来自分类Dev

使用一个指令从另一个隔离的范围复制范围属性

来自分类Dev

在另一个界面中使用Typescript界面的一个属性

来自分类Dev

在另一个Rails中使用一个模型的属性

来自分类Dev

如何在另一个视图模型中使用一个模型属性?

来自分类Dev

在另一个类中使用一个类的属性

来自分类Dev

使用Powershell的另一个循环JSON对象

Related 相关文章

  1. 1

    C# 中的 FluentValidation - 使用另一个对象中的属性进行验证

  2. 2

    Json模式。如何基于另一个属性值验证属性键?

  3. 3

    Json模式。如何基于另一个属性值验证属性键?

  4. 4

    过滤一个json并使用另一个json进行响应

  5. 5

    使用基于另一个属性值的嵌套路径进行Mongodb查询

  6. 6

    If语句使用另一个文件中的属性进行测试

  7. 7

    当不存在另一个参数时,需要使用JSON Schema的参数

  8. 8

    从另一个列表对json列表进行排序

  9. 9

    递归属性,使用另一个属性中的一个属性

  10. 10

    使用另一个变量进行子集

  11. 11

    使用另一个变量进行子集

  12. 12

    使用另一个类的instance属性。Python

  13. 13

    使用 Javascript Reduce 添加一个属性并乘以另一个属性

  14. 14

    使用Underscore进行主干诱人将在模板中呈现一个属性,而不在另一个属性中呈现

  15. 15

    如何使用XML Schema重用另一个Schema / Namespace(即XHTML)中的元素?

  16. 16

    避免使用Angular和JSON进行另一个API调用

  17. 17

    使用 Swift Decodable 进行动态(但称为另一个键值)JSON 解码

  18. 18

    使用jq获取基于json中另一个属性的键列表

  19. 19

    展平json,以使一个属性是键,而另一个值

  20. 20

    通过给定的一个获取另一个 JSON 对象属性

  21. 21

    如果属性已经具有另一个属性,则强制在属性上使用属性

  22. 22

    使用一个列表对另一个列表进行排序

  23. 23

    c#根据另一个属性的相同值,从另一个中减去一个json的属性int值

  24. 24

    使用一个指令从另一个隔离的范围复制范围属性

  25. 25

    在另一个界面中使用Typescript界面的一个属性

  26. 26

    在另一个Rails中使用一个模型的属性

  27. 27

    如何在另一个视图模型中使用一个模型属性?

  28. 28

    在另一个类中使用一个类的属性

  29. 29

    使用Powershell的另一个循环JSON对象

热门标签

归档