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

如何在JSON Schema中使用任意属性名并实现指定结构校验

任意键名、值为非空字符串数组的JSON Schema写法

这类动态键名结构不需要提前枚举属性名,通过JSON Schema的内置约束字段即可完成全部规则校验,完整Schema如下:

{
  "type": "object",
  "minProperties": 1,
  "additionalProperties": {
    "type": "array",
    "items": {
      "type": "string"
    },
    "minItems": 1
  }
}

各字段和需求的对应关系:

  • minProperties: 1:约束对象必须至少包含1个属性,禁止传入空对象
  • additionalProperties:用于定义所有未显式声明的属性的校验规则,天然支持任意字符串作为属性名,不需要提前固定键名
  • additionalProperties.type: "array" + additionalProperties.items.type: "string":约束每个属性的取值必须是字符串类型组成的数组
  • additionalProperties.minItems: 1:约束每个字符串数组至少包含1个元素,禁止空数组

你给出的示例结构可以完全通过该Schema校验,以下几种不符合规则的情况会被拦截:

  • 传入空对象{}
  • 某属性值不是数组,比如{"K1": "V1"}
  • 某属性值是空数组,比如{"K1": []}
  • 数组中包含非字符串元素,比如{"K1": ["V1", 2]}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 02:24:34