我试图找出如何全局说所有数组必须长度为1而不必使用minItems:1我在模式的每个位置指定一个数组。我正在考虑创建一个自定义类型,这是一个选项,但我觉得应该有更好的方法?
另一个全局限制是不允许任何空字符串。
感谢您的帮助!
答案 0 :(得分:1)
您永远不能更改关键字的行为(全局或其他方式)。您最好的办法是创建一个包含特殊规则的文件。
global.js
{
"definitions": {
"non-empty-array": {
"type": "array",
"minItems": 1
}
}
}
然后,只要您想使用这些特殊规则,就可以引用此文件。
example.js
{
"type": "object",
"properties": {
"a": {
"allOf": [{ "$ref": "/global.js#/definitions/non-empty-array" }],
"items": { "type": "string" }
},
"b": {
"allOf": [{ "$ref": "global.js#/definitions/non-empty-array" }],
"items": { "type": "integer" }
}
}
}