1

我试图弄清楚如何在全局范围内说所有数组的长度必须为 1 而不必使用 minItems: 1 我指定数组的架构中的每个位置。我正在考虑创建自定义类型,这是一种选择,但我觉得应该有更好的方法?

另一个全局限制是不允许任何空字符串。

谢谢您的帮助!

4

1 回答 1

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" }
    }
  }
}
于 2017-07-26T03:35:37.913 回答