【发布时间】:2017-07-26 00:18:16
【问题描述】:
我试图弄清楚如何全局说所有数组的长度必须为 1,而不必使用 minItems: 1 在架构中的每个位置我指定一个数组。我正在考虑创建自定义类型,这是一种选择,但我觉得应该有更好的方法?
另一个全局限制是不允许任何空字符串。
感谢您的帮助!
【问题讨论】:
标签: validation jsonschema ajv
我试图弄清楚如何全局说所有数组的长度必须为 1,而不必使用 minItems: 1 在架构中的每个位置我指定一个数组。我正在考虑创建自定义类型,这是一种选择,但我觉得应该有更好的方法?
另一个全局限制是不允许任何空字符串。
感谢您的帮助!
【问题讨论】:
标签: validation jsonschema ajv
您永远无法更改关键字的行为(全局或其他方式)。最好的办法是创建一个包含您的特殊规则的文件。
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" }
}
}
}
【讨论】: