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

JSON Schema能否要求属性值相等?及扩展运算支持咨询

JSON Schema 字段关联与运算支持问题解答

一、实现a == meta.a的方法

标准JSON Schema Draft 7及更早版本不支持跨字段相等校验,但Draft 2019-09及后续版本引入了$data关键字,可实现该需求:

{
  "properties":{
    "a": { "type":"string"},
    "meta": {
      "type": "object",
      "properties": {
        "a": { 
          "type": "string",
          "$data": "/a"
        }
      },
      "required": ["a"]
    }
  },
  "required": ["a"]
}

$data可以引用当前JSON实例的其他字段值,强制meta.a与根节点的a完全一致。注意:需确认所用校验器支持Draft 2019-09或更新版本。

二、子字符串、幂运算的支持情况

1. 子字符串校验

标准JSON Schema通过pattern关键字(基于正则表达式)实现子串相关校验:

  • 示例:校验a包含子串"test"
{
  "properties": {
    "a": {
      "type": "string",
      "pattern": "test"
    }
  }
}

若需提取子串等复杂操作,标准规范不支持,需依赖校验器扩展或业务逻辑层处理。

2. 幂运算(数字类型场景)

标准JSON Schema不支持直接的幂运算校验,仅能通过maximum/minimum、multipleOf做间接约束。若需实现如a = b²这类关联运算,可结合$data关键字(部分校验器支持),或在业务逻辑层处理自定义运算逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 03:42:40