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

如何在JSON Schema中定义允许其他字符串的非完整枚举?

解决方案

你可以利用 JSON Schema 的 anyOf 关键字实现需求,既保留指定枚举值的提示与约束能力,又允许任意其他字符串通过验证:

"p": {
  "type": "string",
  "anyOf": [
    { "enum": ["A", "B", "C"] },
    { "not": { "enum": ["A", "B", "C"] } }
  ]
}

逻辑说明

  • anyOf 表示属性值只需满足数组中任意一个子约束即可
  • 第一个子约束保留原有的枚举规则,匹配 "A"、"B"、"C"
  • 第二个子约束通过 not 排除枚举项,匹配所有其他字符串

这样修改后,{"p": "A"}、{"p": "B"}、{"p": "D"} 这类实例都会通过验证,既不用将属性定义为无限制的 string 类型,也无需添加 OTHER 枚举项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 01:35:14