使用Everit和regex检查JSON字符串中的特殊字符

时间:2017-12-15 07:48:47

标签: json regex

我正在使用Everit来检查java应用程序中的一些json,我在检查期间和其他在线验证器中都有这个问题。

json请求包含字符串abcdef&©,其中一个字符与正则表达式©不匹配。正则表达式应该能够匹配任何字母数字字符串&符号。

{"type":"sector","attributes":{"name":"abcdef&©"}}

正则表达式在pattern下的json模式中定义。在这种情况下,我们使用模式:[a-zA-Z0-9\u0026]+(unicode字符用于&符号)来验证上面的JSON。

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "id": "http://example.com/example.json",
  "type": "object",
  "definitions": {},
  "properties": {
    "attributes": {
      "properties": {
        "name": {
          "pattern": "[a-zA-Z0-9\u0026]+",
          "id": "/data/properties/attributes/name",
          "type": "string"
        }
      }
    },
    "objecttype": {
      "pattern": "sector",
      "id": "/data/properties/type",
      "type": "string"
    }
  },
  "required": [
    "type",
    "attributes"
  ]
}

有趣的是,如果我另外使用版权符号,则正则表达式会将此作为成功验证,如果我尝试单独验证它,则正则表达式会将此验证为失败。如何确保使用除我指定的字符之外的任何字符都会导致失败?

  • 成功{"type":"sector","attributes":{"name":"abcdef&©"}}
  • FAILURE {"type":"sector","attributes":{"name":"©"}}

0 个答案:

没有答案