json模式验证patternProperties和属性冲突

时间:2015-06-08 14:08:15

标签: javascript json jsonschema

我有这个JSON架构

{
  "title": "JSON Schema for revues subscribtion",
  "type": "object",
  "properties": {
    "lab": {
      "type": "string"
    }
  },
  "patternProperties": {
    "[A-Za-z][A-Za-z_]*[A-Za-z]": {
      "type": "boolean"
    }
  },
  "required": [
    "lab"
  ]
}

我想匹配像

这样的json数据
{
 "SP": false,
 "lab": "labri"
}

但失败了,因为"lab"值预计为boolean。这意味着"lab" patternProperties 匹配。

有人有解决方案吗?

PS:抱歉,我不擅长英语

1 个答案:

答案 0 :(得分:1)

一种方法是使用符合您需要的正则表达式,但不会匹配实验室'。充其量只是微不足道。

另一个是这个架构:

{
    "title" : "JSON Schema for revues subscribtion",
    "type" : "object",
    "properties" : {
        "lab" : { "type" : "string" }
    },
    "additionalProperties" : { "type": "boolean" },
    "required" : [ "lab" ]
}

它需要所有属性,但实验室必须是布尔值。我认为你不能做得更好。