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

AJV设置additionalProperties: false时如何指定允许的例外属性?

如何在AJV中为MongoDB Schema指定允许的额外属性例外

如果你需要在additionalProperties: false的前提下允许部分额外属性,有两种常用的实现方式:

方法一:直接添加允许的属性到properties中

如果是固定的几个已知额外属性,直接把它们加入properties配置即可,不需要修改additionalProperties: false的设置——因为properties里声明的属性默认都是被允许的,且可以根据需求决定是否加入required数组(非必填就不用加)。

示例代码:

{
  type: "object",
  properties: {
    goal: { type: "string" },
    cost: { type: "number" },
    // 这里添加允许的例外属性
    description: { type: "string" },
    priority: { type: "integer" }
  },
  required: ["goal", "cost"],
  additionalProperties: false,
}

方法二:用patternProperties匹配规则化的属性名

如果允许的额外属性是符合特定命名规则的(比如以meta_开头、以_info结尾),可以用patternProperties配合正则表达式来匹配这类属性,同时保持additionalProperties: false来禁止其他无关属性。

示例代码(允许以meta_开头的任意属性):

{
  type: "object",
  properties: {
    goal: { type: "string" },
    cost: { type: "number" }
  },
  required: ["goal", "cost"],
  // 匹配以meta_开头的属性,同时指定属性值的类型
  patternProperties: {
    "^meta_": { type: ["string", "number", "boolean"] }
  },
  // 除了patternProperties匹配到的属性,其他额外属性一律禁止
  additionalProperties: false,
}

内容的提问来源于stack exchange,提问作者Bear Bile Farming is Torture

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 17:12:05