验证已知值列表的 JSON 模式

joc*_*ull 4 javascript jsonschema

我的代码中有一个特殊的枚举案例,需要对其进行验证:

{
  "status": 10
}
Run Code Online (Sandbox Code Playgroud)

让我们使用这个虚构的有效值列表:

var valid = [10, 20, 23, 27];
Run Code Online (Sandbox Code Playgroud)

如何更改我的 JSON 架构以验证这些值之一?

{
  type: 'object',
  required: ['status'],
  properties: {
    status: { type: number },
  }
}
Run Code Online (Sandbox Code Playgroud)

jru*_*ren 7

您只需将status属性定义为enum

{
    "type" : "object",
    "required" : ["status"],
    "properties" : {
        "status" : {
            "type" : "number",
            "enum" : [10, 20, 23, 27]
        }
    }
}
Run Code Online (Sandbox Code Playgroud)