反正我在那里定义一个 jsoncschema 中的字典?
I there anyway to define a dict in jsoncschema?
我正在尝试为 object
类型定义架构。有没有办法允许任何 属性 名称,但限制所有 属性 值遵守某些模式。这样我就可以允许任何 key
并确保所有 values
都相同 structure/type.
提前致谢。
看起来 patternProperties
符合我的要求。
我可以做到
{
"type": "object",
"patternProperties": {
"*": { "type": "integer" }
},
"additionalProperties": false
}
允许任何键,并将所有值限制为整数。
additionalProperties
关键字可以是布尔值或模式。
如果它是一个架构,那么该架构必须应用于与 properties
或 patternProperties
都不匹配的任何属性。因此,如果您的键可以是任何东西,您的模式就是:
{
"type": "object",
"additionalProperties": {"type": "integer"}
}
如果要限制键,则需要使用 patternProperties
- 例如,仅限小写字母:
{
"type": "object",
"patternProperties": {
"^[a-z]+$": {"type": "object"}
},
"additionalProperties": false
}
既然你想允许 any 属性 名称,additionalProperties
是你最好的解决方案。
我正在尝试为 object
类型定义架构。有没有办法允许任何 属性 名称,但限制所有 属性 值遵守某些模式。这样我就可以允许任何 key
并确保所有 values
都相同 structure/type.
提前致谢。
看起来 patternProperties
符合我的要求。
我可以做到
{
"type": "object",
"patternProperties": {
"*": { "type": "integer" }
},
"additionalProperties": false
}
允许任何键,并将所有值限制为整数。
additionalProperties
关键字可以是布尔值或模式。
如果它是一个架构,那么该架构必须应用于与 properties
或 patternProperties
都不匹配的任何属性。因此,如果您的键可以是任何东西,您的模式就是:
{
"type": "object",
"additionalProperties": {"type": "integer"}
}
如果要限制键,则需要使用 patternProperties
- 例如,仅限小写字母:
{
"type": "object",
"patternProperties": {
"^[a-z]+$": {"type": "object"}
},
"additionalProperties": false
}
既然你想允许 any 属性 名称,additionalProperties
是你最好的解决方案。