反正我在那里定义一个 jsoncschema 中的字典?

I there anyway to define a dict in jsoncschema?

我正在尝试为 object 类型定义架构。有没有办法允许任何 属性 名称,但限制所有 属性 值遵守某些模式。这样我就可以允许任何 key 并确保所有 values 都相同 structure/type.

提前致谢。

看起来 patternProperties 符合我的要求。

我可以做到

{
  "type": "object",
  "patternProperties": {
    "*": { "type": "integer" }
  },
  "additionalProperties": false
}

允许任何键,并将所有值限制为整数。

additionalProperties 关键字可以是布尔值或模式。

如果它是一个架构,那么该架构必须应用于与 propertiespatternProperties 都不匹配的任何属性。因此,如果您的键可以是任何东西,您的模式就是:

{
    "type": "object",
    "additionalProperties": {"type": "integer"}
}

如果要限制键,则需要使用 patternProperties - 例如,仅限小写字母:

{
    "type": "object",
    "patternProperties": {
        "^[a-z]+$": {"type": "object"}
    },
    "additionalProperties": false
}

既然你想允许 any 属性 名称,additionalProperties 是你最好的解决方案。