为什么jsonschema与json不匹配?
鉴于此,我有以下json:为什么jsonschema与json不匹配?,json,jsonschema,json-schema-validator,Json,Jsonschema,Json Schema Validator,鉴于此,我有以下json: { "msg":"aaaa", "email":"aaa@gmail.com" } 然后,我编写了以下json模式: { "$schema": "http://json-schema.org/draft-04/schema#", "title": "Json schema sample", &qu
{
"msg":"aaaa",
"email":"aaa@gmail.com"
}
然后,我编写了以下json模式:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Json schema sample",
"type": "object",
"additionalProperties": true,
"required": [
"msg",
"email"
],
"properties": {
"msg": {
"type": "string"
},
"email": {
"type": "string",
"pattern": "^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$"
}
}
}
遗憾的是,它与json不匹配
如果删除,“pattern”:“^[a-z0-9.\uz0%+-]+@[a-z0-9.-]+\.[a-z]{2,}$”
这是检查电子邮件的正则表达式,那么它工作得很好
我确信我的电子邮件正则表达式是好的。但我不知道为什么它在json模式中不起作用 在json字符串中,\
也是一个转义字符,因此现在它是无效的json。
您还可以在验证json时看到这一点,例如在
因此,您的模式需要第二个\
:
pattern": "^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,}$"
完整示例:(不要忘记在上选择draft-04,或将模式更改为draft-07)
\
也是json字符串中的转义字符,因此现在它是无效的json。
您还可以在验证json时看到这一点,例如在
因此,您的模式需要第二个\
:
pattern": "^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,}$"
完整示例:(不要忘记在上选择draft-04,或将模式更改为draft-07)
正则表达式
不应该仍然匹配字符串中的文本
。这里,单个``会导致无效的json模式。我已经编辑了我的答案,使之更清楚。正则表达式
不应该仍然匹配字符串中的文本
。这里,单个``会导致无效的json模式。我编辑了我的答案,使之更清楚。