You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JSON Schema中使用‘and’条件实现多判断逻辑?

在JSON Schema中实现多条件触发必填字段的方案

当然可以实现你需要的逻辑,JSON Schema的if/then关键字支持组合多条件来动态应用验证规则,下面是具体实现和原理说明:

具体实现代码

以下是满足你需求的完整JSON Schema示例:

{
  "type": "object",
  "properties": {
    "field1": { "type": "string" },
    "field2": { "type": "string" },
    "field3": { "type": "string" }
  },
  "if": {
    "allOf": [
      { "required": ["field1", "field2"] },
      { "properties": { "field1": { "const": "A" } } },
      { "properties": { "field2": { "const": "B" } } }
    ]
  },
  "then": {
    "required": ["field3"]
  }
}

代码说明

  • if块中通过allOf组合三个条件:确保field1和field2存在,且field1的值严格等于"A",field2的值严格等于"B"。
  • 当if中的所有条件都满足时,then块的规则会生效,强制要求JSON实例必须包含field3字段。
  • 如果if的条件不满足(比如field1不是"A",或field2不是"B",或其中某个字段缺失),then块的规则会被完全忽略,field3可填可不填。

consequent(即then部分)的工作原理

  • then是if关键字的配套规则,仅当if中的schema验证通过时才会生效。
  • then本身是一个完整的JSON Schema,你可以在里面定义任何合法的验证规则:比如字段类型约束、格式校验、嵌套对象规则,甚至嵌套的if/then逻辑都可以。
  • 如果if验证失败,then里的所有规则都不会对当前JSON实例产生约束,相当于这部分规则不存在。

内容的提问来源于stack exchange,提问作者Eclat Tech

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 20:33:18