Json模式验证:不允许除模式声明字段之外的字段。

55

假设我有以下模式:

fname: string
lname: string
age: string

它们都不是必需的。用户可以向我发送上述任何一个属性,但不能发送未声明的其他内容。他们可以传递给我fnamelnameage或全部。但如果他们传递了全部并且还有像middle_name这样的额外属性,则应该拒绝该消息。

我如何定义这样的模式?

1个回答

114
您可以创建一个 JSON Schema,并使用选项:
additionalProperties = false

这样,您只允许在属性中定义的属性。对于您的情况:

{
    "properties": {
        "fname": {"type": "string"},
        "lname": {"type": "string"},
        "age": {"type": "string"}
    },
    "additionalProperties": false
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接