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

如何编写JSON Schema限制字符串仅为三个指定可选值

JSON Schema 固定字符串取值约束实现方案

针对你需要限定fruit字段仅能取三个固定字符串的需求,有两种实现方式,其中enum关键字方案为更推荐的标准实现:

方案1:使用enum关键字(推荐)

enum是JSON Schema专门用于限定字段取值为固定集合的语法,语义清晰、校验效率更高,完全适配draft 2020-12版本规范。你只需要在fruit字段的属性定义中补充enum配置即可,修改后的完整Schema如下:

{
  "$id": "https://example.com/person.schema.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "TestSession",
  "type": "object",
  "properties": {
    "fruit": {
      "type": "string",
      "description": "only three legal possibilities: apple, banana, or coconut",
      "enum": ["apple", "banana", "coconut"]
    }
  }
}

注意:请确认枚举值的拼写和业务要求完全一致,若你需求里的bananna是正确拼写,将枚举值里的banana对应修改即可。

方案2:使用正则校验(仅适合需要模糊匹配的场景)

如果你确实需要通过正则实现约束,可使用pattern关键字声明正则规则,注意要添加开头^和结尾$锚点,避免匹配到包含目标字符串的其他非法值,配置示例如下:

"fruit": {
  "type": "string",
  "description": "only three legal possibilities: apple, banana, or coconut",
  "pattern": "^(apple|banana|coconut)$"
}

两种方案的差异:

  • enum方案:无额外学习成本,不会出现正则语法错误,固定取值场景优先选择
  • 正则方案:灵活度更高,适合需要部分匹配、模糊匹配的非固定枚举场景,编写时需要注意转义特殊字符、补充边界锚点

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:39:03