不要混淆任何人,我将从验证数组开始......
关于数组,JSON Schema可以检查(((...)sub)sub)数组的元素是否符合结构:
"type": "array",
"items": {
...
}
验证对象时,我知道我可以使用相应的值类型传递某些键,例如:
"type": "object",
"properties": {
// key-value pairs, might also define subschemas
}
但是,如果我有一个对象,我想用它来验证值(没有键)会怎样?
我的实例是我正在配置按钮:可能有编辑,删除,添加按钮等。它们都具有特定的,严格的结构,我有JSON模式。但我不想仅限于['edit', 'delete', 'add']
,将来可能会publish
或print
。但我知道他们都符合我的副标题。
每个按钮是:
BUTTON = {
"routing": "...",
"params": { ... },
"className": "...",
"i18nLabel": "..."
}
我有一个对象(不是数组)按钮:
{
"edit": BUTTON,
"delete": BUTTON,
...
}
如何编写此类JSON架构?有没有办法将object
和items
结合起来(我知道有对象属性和数组项关系)。
答案 0 :(得分:4)
您可以使用additionalProperties
。如果将additionalProperties
设置为模式而不是布尔值,那么未使用properties
或patternProperties
关键字显式声明的任何属性都必须与给定模式匹配。
{
"type": "object",
"additionalProperties": {
... BUTTON SCHEMA ...
}
}
http://json-schema.org/latest/json-schema-validation.html#anchor64