JSON 模式验证整数的数字范围 属性

JSON Schema validating a range of numbers for a integer property

我正在使用 TV4 来验证我的模式,我看到这个库使用 Json 模式模型来验证 JSON。

但我没有找到进行特定验证的方法。

我有一个整数 属性 而这个 属性 只能有一些数字中的一个。例如,我的有效数字是 10、20、30 和 40,所以如果我输入的数字与这些数字不同,我需要显示验证错误。

有什么方法可以在 JSON 模式中进行这种特定的验证?

我不确定您是想要 enum 还是想要整数值是 10 的倍数。

对于 enum,您有一个允许值数组。例如:

{
  "type": "string",
  "enum": ["red", "amber", "green"]
}

source

如果您希望值只是数字的倍数,则需要 multipleOf

{
    "type"       : "number",
    "multipleOf" : 10
}

source

这些链接适用于 JSON 架构的 draft-4 版本,因为这是您使用的库支持的内容,但是这些关键字也出现在 JSON 的最新版本中架构(撰写本文时为草案 7)。您可以考虑使用支持较新版本的 differnet 库。