在json schema v4中要求所有子项的属性

时间:2014-07-13 02:23:22

标签: json jsonschema

假设我有这样的架构:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 4,
      "maxLength": 50,
      "pattern": "[a-zA-Z0-9\\-\\s]+"
    },
    "object": {
      "type": "object"
    }
  },
  "required": [
    "name",
    "object"
  ],
  "additionalProperties": false
}

在哪里'对象'可以是任何有效JSON对象的实例, 但我想强制执行顶级对象的每个子对象必须具有' sort_default'使用枚举值[' ASC',' DESC]

因此,有效的示例实例可能是:

{
  "name": "Example Object",
  "object": {
    "prop1": {
      "value": 2547,
      "sort_default": "ASC"
    },
    "prop2": {
      "value": 3658,
      "sort_default": "DESC",
      "prop2.1": {
        "value": 147,
        "sort_default": "ASC"
      }
    }
  }
}

但是如果一个对象节点缺少sort_default属性,它就不会验证。

这可能吗?

1 个答案:

答案 0 :(得分:0)

是的,您可以使用对象模式的递归定义,如it is described here