JSonSchema 中允许的 patternProperty 的 1 个实例

1 single instance of a patternProperty allowed in JSonSchema

我有一个像这样的 JsonSchema

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "additionalProperties": false,
    "definitions": {},
    "id": "http://example.com/example.json",
    "patternProperties": {
        "^[0-9]$": {
....
....
....
        }
     }
}

我想让这个 Schema 验证的是,如果有一个 JSON 字符串带有这个 patternProperty

的 0 或 1

例如

{
   "0":{}
}

是右输出

{
}

也是右输出

{
   "0":{},
   "1":{}
}

即使两者的 patternProperty 都匹配,也会出现错误输出,但有超过 1 个节点

使用 JSonSchema 可以做到这一点吗?

您可以使用 maxProperties and minProperties。 如果你只想要一个 属性 你可以这样做:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "additionalProperties": true,
  "patternProperties": {
    "[a-z]": {}
  },
  "maxProperties": 1,
  "minProperties": 1
}