比较 JSON 模式中的数字

Comparing numbers in JSON Schema

我在 JSON 架构中有号码 属性

"years": {"type": "number", "pattern": "^([0-9]|10)$"}

我想在需要检查数字是否小于3的情况下匹配这个数字,有没有办法做到这一点?我试过了

"if": {"properties": {"years": {"anyOf": [0,1,2]}}

你想要exclusiveMaximum。见 https://json-schema.org/understanding-json-schema/reference/numeric.html#range

请注意,您可能希望 minimum: 0 排除负数。 如果您不想包含小数,您可能还需要 type: integer 而不是 type: number

pattern 不正确,因为它适用于字符串,而不是数字。 anyOf 采用模式,而不是值,但如果这些是唯一允许的值,您可以使用 enum: [0, 1, 2]