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

如何在JSON Schema中复用「单个值或非空同类型数组」校验模式?

配置文件属性Schema复用问题

我们编写配置文件时,部分属性采用「支持单个值或同类型非空数组」的设计——这样用户仅需单个项时,无需写冗余的数组声明,既方便又提升可读性。

配置示例

{
  // 合法
  "accepted_values": 1,

  // 合法
  "accepted_values": [1, 2, 3],

  // 不合法
  "accepted_values": null,

  // 不合法
  "accepted_values": []
}

对应校验Schema

{
  "properties":{
    "accepted_values": {
      "oneOf": [
        { "type": "number" },
        {
          "type": "array",
          "items": { "type": "number" },
          "minItems": 1
        }
      ]
    }
  }
}

现在这个oneOf的校验逻辑会在多个属性中重复出现,且每个属性对应的具体值校验规则各不相同。我希望避免重复编写这段oneOf逻辑,想问能不能用类似以下方式结构化Schema来实现模式复用?

{
  "properties":{
    "accepted_values": {
      "$ref": "#/one_or_more",
      "type": "number",
      // 此处也可以是其他复杂的项定义,比如复杂对象
    }
}

内容的提问来源于stack exchange,提问作者Nico J.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 09:00:00