首页 文章

JSON Schema:验证对象的值,不带键

提问于
浏览
3

不要混淆任何人,我将从验证数组开始......

关于数组,JSON Schema可以检查(((...)sub)sub)数组的元素是否符合结构:

"type": "array",
"items": {
  ...
}

验证对象时,我知道我可以使用相应的值类型传递 certain keys ,例如:

"type": "object",
"properties": {
  // key-value pairs, might also define subschemas
}

但是,如果我有一个 object ,我想用它来验证 values only (没有键)怎么办?

我的实例是我正在配置按钮:可能有编辑,删除,添加按钮等 . 它们都具有特定的,严格的结构,我有JSON模式 . 但我不想仅限于 ['edit', 'delete', 'add'] ,未来可能会有 publishprint . 但我知道他们都会符合我的副 Headers .

每个按钮是:

BUTTON = {
  "routing": "...",
  "params": { ... },
  "className": "...",
  "i18nLabel": "..."
}

而且我有一个 object (不是数组)按钮:

{
  "edit": BUTTON,
  "delete": BUTTON,
  ...
}

我该如何编写这样的JSON模式?有没有办法将 objectitems 结合起来(我知道有对象属性和数组项关系) .

1 回答

  • 4

    您可以使用 additionalProperties . 如果将 additionalProperties 设置为模式而不是布尔值,则未使用 propertiespatternProperties 关键字显式声明的任何属性必须与给定模式匹配 .

    {
      "type": "object",
      "additionalProperties": {
        ... BUTTON SCHEMA ...
      }
    }
    

    http://json-schema.org/latest/json-schema-validation.html#anchor64

相关问题