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

如何在JSON Schema的required规则中嵌套使用anyOf?

更简洁的实现方案

{
    "type": "object",
    "properties": {
        "x": {
            "type": "object",
            "allOf": [
                {
                    "anyOf": [
                        {"required": ["a"]},
                        {"required": ["b"]}
                    ]
                },
                {
                    "anyOf": [
                        {"required": ["c"]},
                        {"required": ["d"]}
                    ]
                }
            ],
            "properties": {
                "a": {"type": "string"},
                "b": {"type": "string"},
                "c": {"type": "string"},
                "d": {"type": "string"}
            }
        }
    }
}

这个写法完全匹配你需要的(a或b) 且 (c或d)的校验规则,和你原实现的校验效果完全一致,所有支持标准JSON Schema的校验库都可兼容。相比原写法优势明显:

  • 无需枚举所有字段组合,代码更精简
  • 后续如果要扩展可选字段,比如第一组新增可选字段e、第二组新增可选字段f,仅需在对应anyOf数组中追加规则即可,维护成本更低

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:51:00