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

JSON Schema如何定义允许a为整数/对象且禁止额外属性的规则

核心问题说明

你原来的写法存在两个错误:

  • 关键字拼写错误:必填属性关键字误写为reqired,正确拼写为required
  • additionalProperties: false的逻辑限制:该关键字只会识别同一层级下properties字段中声明的属性,你把a的属性定义放到了anyOf的子分支中,顶层没有声明a属性,导致additionalProperties直接把合法的a也判定为额外属性拦截,这就是你删除该配置后规则才生效的原因。
正确的Schema定义
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "required": ["a"],
  "additionalProperties": false,
  "properties": {
    "a": {
      "type": ["integer", "object"]
    }
  }
}
规则验证说明

上述Schema完全匹配你的需求:

  • 合法场景{"a": 1}、{"a": {}}均可正常通过校验
  • 存在额外属性的{"a": 1, "b": true}会被additionalProperties: false拦截
  • a类型不符合要求的{"a": true}会被类型校验拦截

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:21:02