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

如何在JSON Schema校验中验证一个属性值存在于另一个属性值中?

用JSON Schema实现指定校验需求

完全可以用JSON Schema实现你要的校验规则,需要用到JSON Schema Draft 6及以上版本支持的$data关键字来引用实例中的其他属性值,结合正则表达式完成包含校验。

对应的JSON Schema示例

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "email": {
      "type": "string",
      "pattern": "^.*{{$data:1/name}}.*$"
    }
  },
  "required": ["name", "email"]
}

规则说明

  • name和email字段均被定义为字符串类型,满足第一个校验条件
  • email的pattern规则通过$data:1/name引用同级的name属性值,生成的正则表达式会确保email字符串中包含name的内容,满足第二个校验条件
  • required关键字强制要求name和email必须存在,避免缺失属性导致的校验漏洞

校验效果

  • 你提供的示例JSON会校验通过
  • 若name为abc但email为xyz@gmail.com,正则匹配失败,校验不通过

注意:部分JSON Schema校验工具需要手动开启对$data关键字的支持,比如Ajv库需要在初始化时配置{ data: true }。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 07:35:26