JSON架构:如何检查字段是否包含值

cs7cruho  于 2023-03-04  发布在  其他
关注(0)|答案(1)|浏览(143)

我有一个JSON模式验证器,我需要检查一个特定的字段email,看看它是否是4个可能的电子邮件之一。让我们称之为可能性['test1', 'test2', 'test3', 'test4']。有时电子邮件包含一个\n换行符,所以我也需要考虑到这一点。有可能在JSON模式中做一个字符串包含方法吗?
下面是我的模式,没有电子邮件检查:

{
  "type": "object",
  "properties": {
    "data": {
        "type":"object",
        "properties": {
            "email": {
                "type": "string"
            }
        },
    "required": ["email"]
    }
  }
}

我的输入有效负载是:

{
  "data": {
      "email": "test3\njunktext"
      }
}

我需要下面的负载通过验证,因为它有test3在里面。谢谢!

bvhaajcl

bvhaajcl1#

我可以想到两个办法:
使用枚举可以定义有效电子邮件的列表:

{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "email": {
          "enum": [
            "test1",
            "test2",
            "test3"
          ]
        }
      },
      "required": [
        "email"
      ]
    }
  }
}

或者使用允许您使用正则表达式来匹配有效电子邮件的模式:

{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "email": {
          "pattern": "test"
        }
      },
      "required": [
        "email"
      ]
    }
  }
}

相关问题