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

JSON Schema中patternProperties未按预期工作问题求助

问题分析与修复

你要的是能验证"audio"或"digital"作为键、对应字符串值的JSON结构,但你的Schema配置有两个关键问题,导致patternProperties没起作用:

  1. 层级放错了:你把patternProperties写到了"Definitions"子对象里,但你实际要约束的是顶层对象的字段,不是"Definitions"下面的字段。
  2. additionalProperties限制错了范围:外层的"additionalProperties":false会强制顶层对象只能有"Definitions"这一个属性,直接把你要的"audio"/"digital"字段给禁用了。

修复后的Schema

{
  "$schema": "https://json-schema.org/draft-07/schema#",
  "description": "通用定义",
  "type": "object",
  "patternProperties": {
    "^(digital|audio)$": {"type": "string"}
  },
  "additionalProperties": false
}

关键说明

  • 把patternProperties移到顶层,直接约束顶层的字段名。
  • 正则表达式加上^和$锚点,确保字段名完全匹配digital或audio,避免误匹配包含这两个字符串的其他字段(比如audiobook)。
  • additionalProperties: false放在顶层,保证除了符合规则的字段外,不允许添加其他多余字段。

现在这个Schema就能验证你想要的JSON结构了:

{
  "audio": "These are mp3 artifacts"
}

或者

{
  "digital": "These are .mp4 or .wav files"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 02:39:09