JsonSchema正则表达式模式验证不起作用

时间:2018-02-09 15:07:57

标签: json jsonschema json-schema-validator

以下是我需要验证的jsonSchema字段

"field1": 
      {
        "type": "integer",
        "javaType": "long",
        "pattern": "^[0-9]{6}"
      },
      "field2": {
        "type": "integer",
        "javaType": "long",
        "pattern": "^[0-9]{10}"
      },

字段1应为6个正好数字,字段2应为10个数字。 但是,当我上传的数据少于或大于给定的限制时,它仍然有效。 不确定问题出在哪里

1 个答案:

答案 0 :(得分:0)

模式不完整,相当于startsWith(6 digits)startsWith(10 digits)。 您需要在末尾添加$以验证字段的长度是6位和10位。

^[0-9]{6}$ ^[0-9]{10}$

经过一些测试后,我发现由于某些黑魔法我不明白,如果你将它与整数字段一起使用,模式总会匹配。 如果要检查整数的长度,则应使用minimummaximum

"field1": {
    "type": "integer",
    "javaType": "long",
    "minimum": 100000,
    "maximum": 999999
},
"field2": {
    "type": "integer",
    "javaType": "long",
    "minimum": 1000000000,
    "maximum": 9999999999
}

我和Postman一起做了测试,我不知道它是否是最好的,但这是我运行的唯一工具。