Arrays JSON模式:验证对象';s值,不带键

Arrays JSON模式:验证对象';s值,不带键,arrays,json,object,jsonschema,Arrays,Json,Object,Jsonschema,为了不迷惑任何人,我将从验证数组开始 关于数组,JSON模式可以检查((…)子)子数组的元素是否符合以下结构: "type": "array", "items": { ... } 验证对象时,我知道我可以传递某些键及其相应的值类型,例如: "type": "object", "properties": { // key-value pairs, might also define subschemas } 但是如果我有一个对象,我只想用它来验证值(没有键),该怎么办 我的真实例子是,

为了不迷惑任何人,我将从验证数组开始

关于数组,JSON模式可以检查((…)子)子数组的元素是否符合以下结构:

"type": "array",
"items": {
  ...
}
验证对象时,我知道我可以传递某些键及其相应的值类型,例如:

"type": "object",
"properties": {
  // key-value pairs, might also define subschemas
}
但是如果我有一个对象,我只想用它来验证(没有键),该怎么办

我的真实例子是,我正在配置按钮:可能有编辑、删除、添加按钮等等。它们都有特定的、严格的结构,我有JSON模式。但我不想把自己局限于
[“编辑”、“删除”、“添加”]
,将来可能会有
发布
打印
。但我知道它们都符合我的子模式

每个按钮都是:

BUTTON = {
  "routing": "...",
  "params": { ... },
  "className": "...",
  "i18nLabel": "..."
}
我有一个对象(不是一个数组)按钮:

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

如何编写这样的JSON模式?是否有任何方法可以将
对象
(我知道存在对象属性和数组项关系)。

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

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

您是真正的JSON模式专家:)如果您想制定一个类似数组的规则,即必须至少有一个键值对,该怎么办?这也是可行的吗?@majorBummer Yep,只需添加
“minProperties”:1
现在我正在使用附加属性来指定“子对象”中的键,我怎么说除了这些指定的键之外,我不想要任何附加属性?再次感谢@majorBummer不知道你在问什么。任何其他属性都必须与架构匹配。不可能有任何其他附加属性。