Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么jsonschema与json不匹配?_Json_Jsonschema_Json Schema Validator - Fatal编程技术网

为什么jsonschema与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

鉴于此,我有以下json:

{
"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模式。我编辑了我的答案,使之更清楚。