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

JSON Schema子条件实现咨询:charges含amount时minimum需必填

实现指定的JSON校验逻辑

可以通过JSON Schema实现你描述的校验规则,以下是具体的Schema定义及说明:

完整校验Schema

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "minimum": { "type": "number" },
    "charges": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "amount": { "type": "number" },
          "billable": { "type": "number" }
        },
        "additionalProperties": false
      }
    }
  },
  "required": ["charges"],
  "if": {
    "properties": {
      "charges": {
        "contains": {
          "required": ["amount"]
        }
      }
    }
  },
  "then": {
    "required": ["minimum"]
  },
  "additionalProperties": false
}

规则对应说明

  • 根节点minimum初始为可选:Schema中minimum未被加入全局required数组,默认可选。
  • charges数组内对象的amount和billable均为可选:数组元素的properties定义了这两个字段,但未加入元素自身的required数组。
  • 若charges中任意对象存在amount,则minimum必填:通过if/then条件实现,if部分用contains关键字检测数组中是否存在包含amount的对象,满足条件时then强制要求根节点包含minimum。

示例验证

  • 你提供的无效示例:由于charges中存在带amount的对象,但根节点缺少minimum,会被Schema校验拒绝。
  • 你提供的有效示例:charges中无任何对象包含amount,minimum可选(此处未提供也符合规则),会通过校验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 17:01:07